Heim >Datenbank >MySQL-Tutorial >Warum löst „mysqli_stmt::bind_result()' einen Fehler bei der Nichtübereinstimmung der Bindungsvariablen aus?

Warum löst „mysqli_stmt::bind_result()' einen Fehler bei der Nichtübereinstimmung der Bindungsvariablen aus?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-10 21:46:14605Durchsuche

Why Does `mysqli_stmt::bind_result()` Throw a Bind Variable Mismatch Error?

Bindungsvariablenkonflikt in PHPs mysqli_stmt::bind_result()

Beim Versuch, sich über ein PHP-Anmeldeformular mit einer vorbereiteten Anweisung anzumelden, Du stößt auf das Fehler:

mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement

Diagnose:

Dieser Fehler tritt auf, wenn die Anzahl der in bind_param() angegebenen Bind-Variablen nicht mit der Anzahl der von der vorbereiteten zurückgegebenen Felder übereinstimmt Aussage.

Lösung:

In Ihrem Code:

$stmt->prepare("SELECT username AND password FROM users WHERE username = ?");

Die vorbereitete Anweisung ruft zwei Felder ab, Benutzername und Passwort, aber Ihre nachfolgenden bind_param()- und bind_result()-Aufrufe geben nur eine Bindevariable an, $username.

Zur Auflösung Dazu müssen Sie mehrere Bindungsvariablen und -felder korrekt angeben:

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

Das obige ist der detaillierte Inhalt vonWarum löst „mysqli_stmt::bind_result()' einen Fehler bei der Nichtübereinstimmung der Bindungsvariablen aus?. 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