Heim > Backend-Entwicklung > PHP-Tutorial > Warum wirft „mysqli_stmt::bind_result()' den Fehler „Nicht übereinstimmende Bindungsvariablen' aus?

Warum wirft „mysqli_stmt::bind_result()' den Fehler „Nicht übereinstimmende Bindungsvariablen' aus?

Mary-Kate Olsen
Freigeben: 2024-12-11 13:09:11
Original
671 Leute haben es durchsucht

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

mysqli_stmt::bind_result(): Nicht übereinstimmende Bind-Variablen vs. vorbereitete Anweisungsfelder

Frage:

Beim Versuch, eine vorbereitete Anweisung mit mysqli_stmt auszuführen, Ich stoße auf den Fehler: „mysqli_stmt::bind_result(): Die Anzahl der Bindevariablen stimmt nicht mit der Anzahl der Felder in der vorbereiteten Anweisung überein.“ Warum erhalte ich diesen Fehler?

Codebeispiel:

$mysqli = new mysqli("localhost", "root", "", "security");

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

Antwort:

Der Fehler, auf den Sie stoßen Tritt auf, wenn die Anzahl der in bind_result() angegebenen Variablen nicht mit der Anzahl der Spalten übereinstimmt, die von der vorbereiteten Anweisungsabfrage zurückgegeben werden. In Ihrem Beispiel versuchen Sie, zwei Variablen an eine Abfrage zu binden, die nur eine Spalte zurückgibt.

Um dieses Problem zu beheben, sollte die Abfrage im richtigen Format für den Vorgang geschrieben werden. Die richtige Syntax für die Auswahl mehrerer Felder besteht darin, sie durch Kommas zu trennen, nicht durch AND:

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

Sobald die Abfrage korrigiert ist, kann die Methode bind_result() verwendet werden, um die Variablen korrekt an das Ergebnis zu binden:

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

Das obige ist der detaillierte Inhalt vonWarum wirft „mysqli_stmt::bind_result()' den Fehler „Nicht übereinstimmende Bindungsvariablen' 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