Leo Löwe: Wie initiiert PHP mysqli_stmt_prepare ?

Beitrag lesen

Hallo... versuche nach längerer Pause meine PHP Kentnisse aufzufrischen. Folge gerade einem Youtube Tutorial von Dani Krossing, zu welchem ich eine kleine Verständnisfrage hätte (Video ist denke ich zum Verständnis nicht wirklich notwendig 😉 ):

Folgender [eigentlich trivialer] Code macht eine Datenbankabfrage bezüglich eines/r Benutzers/Benutzerin. Mein Verständnisproblem habe ich im Beispiel mit mysqli_stmt_prepare:

Wird mysqli_stmt_prepare in der if Schleife auch gleich initiiert, während diese überprüft, ob eben eine $username und $email Übereinstimmung in der Datenbank gefunden wurde?

ORIGINALCODE:

// (...)
function uidExists($conn, $username, $email) {
	$sql = "SELECT * FROM users WHERE usersUid = ? OR usersEmail = ?;";
	$stmt = mysqli_stmt_init($conn);

	if (!mysqli_stmt_prepare($stmt, $sql)) {
		header("location: ../signup.php?error=stmtfailed");
		exit();
	}
	
	mysqli_stmt_bind_param($stmt, "ss", $username, $email);
	mysqli_stmt_execute($stmt);
	
	$resultData = mysqli_stmt_get_result($stmt);
	
	if (mysqli_fetch_assoc($resultData)) {
		// CODE
	} else {
		// CODE
	}
	// CODE
}
// (...)

Müsste das nicht lauten:

// fehlt folgende Zeile zur Initiierung nicht?
	mysqli_stmt_prepare($stmt, $sql);

	if (!mysqli_stmt_prepare($stmt, $sql)) {
		header("location: ../signup.php?error=stmtfailed");
		exit();
	}

Es dankt Leo Löwe