首頁 > 後端開發 > php教程 > 為什麼我的 MySQLi 準備語句會拋出「綁定變數數量與欄位數量不符」錯誤?

為什麼我的 MySQLi 準備語句會拋出「綁定變數數量與欄位數量不符」錯誤?

Patricia Arquette
發布: 2024-12-15 21:30:26
原創
239 人瀏覽過

Why Does My MySQLi Prepared Statement Throw a

MySQLi 準備語句中的綁定變數不符

當嘗試在 PHP中使用準備語句實現登入表單時,一些開發人員遇到了令人沮喪的問題錯誤:「mysqli_stmt::bind_result():綁定變數的數量與準備好的欄位數量不符語句。」

當SQL 查詢和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);
登入後複製

問題出在 SQL 查詢。選擇多個欄位時,使用“AND”關鍵字代替逗號。選擇多個欄位的正確語法是用逗號分隔它們:

$stmt = $mysqli->prepare("SELECT username, password FROM users WHERE username = ?");
登入後複製

此外,bind_result() 函數應與所選欄位的數量相符。在這種情況下,選擇了兩個字段,因此bind_result()函數應該有兩個變數:

$stmt->bind_result($username, $password);
登入後複製

透過更正選擇語法並將bind_result()函數與所選字段的數量對齊,問題不匹配的綁定變數將得到解決,從而使登入表單能夠正常運作。

以上是為什麼我的 MySQLi 準備語句會拋出「綁定變數數量與欄位數量不符」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板