Heim >Datenbank >MySQL-Tutorial >Warum löst „mysqli_stmt::bind_result()' den Fehler „Anzahl der Bindevariablen stimmt nicht mit der Anzahl der Felder überein' aus?

Warum löst „mysqli_stmt::bind_result()' den Fehler „Anzahl der Bindevariablen stimmt nicht mit der Anzahl der Felder überein' aus?

DDD
DDDOriginal
2024-12-17 20:11:10392Durchsuche

Why Does `mysqli_stmt::bind_result()` Throw a

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn