INSERT 查詢引發問題:綁定變數的數量與準備好的語句不相容
在您的PHP 程式碼中,錯誤訊息指示之間不符合準備好的語句中的綁定變數和欄位的數量。具體來說,警告內容為:
「警告:mysqli_stmt::bind_result():綁定變數的數量與準備好的語句中的欄位數量不符」
此錯誤發生在以下程式碼中:
if($stmt = $conn -> prepare("INSERT INTO login(user, pass) VALUES(?, ?)")) { /* Bind parameters s - string, b - blob, i - int, etc */ $stmt -> bind_param("ss", $user, $pw); /* Execute it */ $stmt -> execute(); /* Bind results */ $stmt -> bind_result($user, $pw); /* Close statement */ $stmt -> close(); $userId = $conn->insert_id; }
理解問題
錯誤源自於您嘗試將結果變數($user 和$pw)綁定到不傳回任何內容的語句結果。在這種情況下,INSERT 查詢沒有 SELECT 子句或傳回值的預存程序。因此,綁定結果變數是不必要的。
解決問題
要解決問題,只需刪除綁定結果變數的行:
$stmt -> bind_result($user, $pw);
透過刪除這一行,您可以消除綁定變數的數量(0)和準備好的語句中的欄位數量(也是0)之間的不匹配。這應該可以解決錯誤並允許您的程式碼成功執行。
以上是為什麼我在 INSERT 查詢中收到「綁定變數數量與欄位數量不符」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!