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中文網其他相關文章!