mysqli_stmt::bind_result() Fehler: Übereinstimmung von Bind-Variablen mit vorbereiteten Anweisungsfeldern
Beim Versuch, eine vorbereitete Anweisung für einen Anmeldemechanismus zu verwenden In PHP kann es zu folgendem Fehler kommen: „mysqli_stmt::bind_result(): Anzahl der Bindevariablen funktioniert nicht.“ Übereinstimmung mit der Anzahl der Felder in der vorbereiteten Anweisung.“ Dies weist auf eine Diskrepanz zwischen der Anzahl der Variablen, die Sie in Ihren Ergebnissen binden, und der Anzahl der Felder hin, die von der vorbereiteten Anweisung erwartet werden.
Falscher Code und falsche Analyse:
Die Der bereitgestellte Code veranschaulicht das Problem:
$stmt = $mysqli->prepare("SELECT username AND password FROM users WHERE username = ?"); $stmt->bind_param('s', $username); $stmt->execute(); $stmt->bind_result($password, $username);
Der Fehler tritt auf, weil das Schlüsselwort „AND“ in der SELECT-Klausel falsch verwendet wurde. Anstatt die Felder durch „AND“ zu trennen, sollten Sie ein Komma verwenden.
Korrekter Code und richtige Erklärung:
Um diesen Fehler zu beheben, ändern Sie die SELECT-Klausel wie folgt :
$stmt = $mysqli->prepare("SELECT username, password FROM users WHERE username = ?");
Mit dieser Änderung erwartet die vorbereitete Anweisung nun die Rückgabe von zwei Feldern: Benutzername und Passwort. Anschließend können Sie mit mysqli_stmt::bind_result() sicher zwei Variablen an sie binden.
$stmt->bind_result($username, $password);
Indem Sie sicherstellen, dass die Anzahl der Bindevariablen mit der Anzahl der Felder in der vorbereiteten Anweisung übereinstimmt, können Sie verhindern, dass die „Anzahl „Anzahl der Bindevariablen stimmt nicht mit der Anzahl der Felder in der vorbereiteten Anweisung überein“ Fehler.
Das obige ist der detaillierte Inhalt vonWarum löst „mysqli_stmt::bind_result()' den Fehler „Anzahl der Bindevariablen stimmt nicht mit der Anzahl der Felder überein' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!