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
Susan SarandonOriginal
2024-12-11 09:01:09198Durchsuche

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();

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

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!

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