Heim >Backend-Entwicklung >PHP-Tutorial >Warum wirft „mysqli_stmt::bind_result()' einen „Binding Mismatch'-Fehler in PHP-Anmeldeformularen aus?

Warum wirft „mysqli_stmt::bind_result()' einen „Binding Mismatch'-Fehler in PHP-Anmeldeformularen aus?

Barbara Streisand
Barbara StreisandOriginal
2024-12-24 03:49:27444Durchsuche

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

Mysqli_stmt::bind_result()-Fehler: Bindungskonflikt

Beim Versuch, ein PHP-Anmeldeformular mithilfe einer vorbereiteten Anweisung zu implementieren, kann es zu Problemen kommen der folgende Fehler:

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

Dieser Fehler weist auf eine Diskrepanz zwischen der Anzahl der in angegebenen Variablen hin bind_result() und die Anzahl der Felder, die von der vorbereiteten Anweisung zurückgegeben werden. Um dieses Problem zu beheben, untersuchen Sie den folgenden Codeausschnitt:

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

Grundursache:

Die falsche Syntax in der SELECT-Anweisung ist die Grundursache des Fehlers. Die korrekte Syntax sollte sein:

SELECT username, password FROM users WHERE username = ?

Lösung:

Das Problem kann gelöst werden, indem die Felder in der SELECT-Anweisung durch ein Komma anstelle von „AND“ getrennt werden. " Der richtige Code wird unten bereitgestellt:

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

Durch Sicherstellen der korrekten Syntax in der SELECT-Anweisung und Beobachten, dass die Anzahl der Bindevariablen mit der Anzahl der Felder in der vorbereiteten Anweisung übereinstimmt, wird der mysqli_stmt::bind_result()-Fehler angezeigt kann verhindert werden.

Das obige ist der detaillierte Inhalt vonWarum wirft „mysqli_stmt::bind_result()' einen „Binding Mismatch'-Fehler in PHP-Anmeldeformularen 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