Heim > Backend-Entwicklung > PHP-Tutorial > Warum löst „mysqli_stmt::bind_result()' einen Fehler aus, wenn die Anzahl der Bindungsvariablen nicht mit den Ergebnissatzspalten übereinstimmt?

Warum löst „mysqli_stmt::bind_result()' einen Fehler aus, wenn die Anzahl der Bindungsvariablen nicht mit den Ergebnissatzspalten übereinstimmt?

Susan Sarandon
Freigeben: 2024-12-11 09:01:09
Original
204 Leute haben es durchsucht

Why Does `mysqli_stmt::bind_result()` Throw an Error When the Number of Bind Variables Doesn't Match the Result Set Columns?

Bindungsvariablenkonflikt in mysqli_stmt::bind_result()

In PHP, wenn eine vorbereitete Anweisung mit mysqli_stmt::bind_result() ausgeführt wird, Die Anzahl der Bindevariablen muss der Anzahl der Felder im Ergebnissatz entsprechen. Wenn sie nicht übereinstimmen, wird der Fehler „mysqli_stmt::bind_result(): Die Anzahl der Bindevariablen entspricht nicht der Anzahl der Felder in der vorbereiteten Anweisung“ ausgegeben.

Um dieses Problem zu beheben, stellen Sie sicher, dass die Anzahl der Bind-Variablen in bind_result() richtet sich nach der Anzahl der von der Abfrage zurückgegebenen Spalten. Betrachten Sie den folgenden PHP-Code:

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

In diesem Beispiel ruft die vorbereitete Anweisung zwei Spalten ab, Benutzername und Passwort. Allerdings wird in bind_result() nur eine Bindevariable, $username, angegeben. Um dies zu korrigieren, fügen Sie die zweite Bindevariable für $password hinzu:

$stmt->bind_result($username, $password); // Correct number of bind variables
Nach dem Login kopieren

Die Syntax für SELECT-Anweisungen lautet: SELECT field1, field2, ... fieldN FROM table_name WHERE .... Jedes Feld muss getrennt werden durch ein Komma, nicht durch eine UND-Bedingung.

Das obige ist der detaillierte Inhalt vonWarum löst „mysqli_stmt::bind_result()' einen Fehler aus, wenn die Anzahl der Bindungsvariablen nicht mit den Ergebnissatzspalten übereinstimmt?. 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