首頁 >資料庫 >mysql教程 >為什麼 `mysqli_stmt::bind_result()` 拋出「綁定變數數量與欄位數量不符」錯誤?

為什麼 `mysqli_stmt::bind_result()` 拋出「綁定變數數量與欄位數量不符」錯誤?

DDD
DDD原創
2024-12-17 20:11:10342瀏覽

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

mysqli_stmt::bind_result() 錯誤:將綁定變數與準備好的語句進行比對

嘗試使用準備好的語句進行比對

嘗試使用準備好的語句進行比對

嘗試使用準備好的語句進行比對

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

嘗試使用準備好的語句進行比對登入機制時在PHP 中,您可能會遇到錯誤:「mysqli_stmt::bind_result(): Number of bind變數與準備好的語句中的欄位數量不符。

不正確的程式碼和分析:

提供的程式碼示範了這個問題:

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

出現錯誤是因為SELECT 子句中錯誤地使用了“AND”關鍵字。您不應使用“AND”分​​離欄位。

$stmt->bind_result($username, $password);

正確程式碼和說明:

要解決此錯誤,請如下修改SELECT 子句:透過此修改,準備好的語句現在期望會傳回兩個欄位:使用者名稱和密碼。然後,您可以使用 mysqli_stmt::bind_result() 安全地將兩個變數綁定到它們。 透過確保綁定變數的數量與準備好的語句中的欄位數量匹配,您可以防止「Number綁定變數的數量與準備好的語句中的欄位數量不匹配」錯誤。

以上是為什麼 `mysqli_stmt::bind_result()` 拋出「綁定變數數量與欄位數量不符」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn