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