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
Freigeben: 2024-12-17 20:11:10
Original
340 Leute haben es durchsucht

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);
Nach dem Login kopieren

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 = ?");
Nach dem Login kopieren

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);
Nach dem Login kopieren

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage