Heim >Datenbank >MySQL-Tutorial >Warum löst „mysqli_stmt::bind_result()' in PHP den Fehler „Anzahl der Bind-Variablen stimmen nicht überein' aus?
mysqli_stmt::bind_result(): Number of Bind Variables Mismatch
Beim Versuch, ein PHP-Anmeldeformular mithilfe einer vorbereiteten Anweisung zu implementieren, Benutzer Es tritt häufig der Fehler „mysqli_stmt::bind_result()“ auf: Die Anzahl der Bindevariablen stimmt nicht mit der Anzahl der Felder in überein vorbereitete Erklärung.“ Dieser Fehler weist auf eine Diskrepanz zwischen der Anzahl der zum Speichern von Abfrageergebnissen verwendeten Bindevariablen und der tatsächlichen Anzahl der von der zugrunde liegenden SQL-Anweisung zurückgegebenen Felder hin.
Diagnosecode
$stmt = $mysqli->prepare("SELECT username, password FROM users WHERE username = ?"); $username = $_POST['name']; $stmt->bind_param('s', $username); $stmt->execute(); $stmt->bind_result($username, $password); // Incorrect field binding $stmt->fetch();
Korrektur
Der obige Code enthält einen Fehler in seinen Feldbindungen. Die bind_result()-Methode sollte die tatsächlichen Felder widerspiegeln, die von der SELECT-Anweisung zurückgegeben werden. In diesem Szenario gibt die Abfrage zwei Felder zurück: Benutzername und Passwort. Daher lautet der korrekte Code:
$stmt->bind_result($username, $password); // Corrected field binding
Weitere Tipps
Das obige ist der detaillierte Inhalt vonWarum löst „mysqli_stmt::bind_result()' in PHP den Fehler „Anzahl der Bind-Variablen stimmen nicht überein' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!