Heim > Backend-Entwicklung > PHP-Tutorial > Warum gibt meine vorbereitete MySQLi-Anweisung den Fehler „Anzahl der Bindevariablen stimmt nicht mit der Anzahl der Felder überein' aus?

Warum gibt meine vorbereitete MySQLi-Anweisung den Fehler „Anzahl der Bindevariablen stimmt nicht mit der Anzahl der Felder überein' aus?

Patricia Arquette
Freigeben: 2024-12-15 21:30:26
Original
241 Leute haben es durchsucht

Why Does My MySQLi Prepared Statement Throw a

Nicht übereinstimmende Bind-Variablen in MySQLi Prepared Statement

Beim Versuch, ein Anmeldeformular mithilfe einer vorbereiteten Anweisung in PHP zu implementieren, stoßen einige Entwickler auf Frustration Fehler: „mysqli_stmt::bind_result(): Die Anzahl der Bindevariablen stimmt nicht mit der Anzahl der vorbereiteten Felder überein Anweisung."

Dieser Fehler tritt auf, wenn die SQL-Abfrage und die Funktion bind_result() eine Nichtübereinstimmung in der Anzahl der Felder enthalten, die ausgewählt und Variablen zugewiesen werden. Lassen Sie uns anhand des bereitgestellten Codes untersuchen, wie dieses Problem behoben werden kann.

Im bereitgestellten Code:

$stmt = $mysqli->prepare("SELECT username AND password FROM users WHERE username = ?");
$stmt->bind_param('s', $username);
$stmt->execute();
$stmt->bind_result($password, $username);
Nach dem Login kopieren

Das Problem liegt in der SQL-Abfrage. Bei der Auswahl mehrerer Felder wird anstelle eines Kommas das Schlüsselwort „AND“ verwendet. Die korrekte Syntax zum Auswählen mehrerer Felder besteht darin, sie durch ein Komma zu trennen:

$stmt = $mysqli->prepare("SELECT username, password FROM users WHERE username = ?");
Nach dem Login kopieren

Außerdem sollte die Funktion bind_result() mit der Anzahl der ausgewählten Felder übereinstimmen. In diesem Fall werden zwei Felder ausgewählt, daher sollte die Funktion bind_result() zwei Variablen haben:

$stmt->bind_result($username, $password);
Nach dem Login kopieren

Durch die Korrektur der Auswahlsyntax und die Ausrichtung der Funktion bind_result() an die Anzahl der ausgewählten Felder wird das Problem behoben Nicht übereinstimmende Bindungsvariablen werden aufgelöst, sodass das Anmeldeformular ordnungsgemäß funktioniert.

Das obige ist der detaillierte Inhalt vonWarum gibt meine vorbereitete MySQLi-Anweisung 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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage