mysqli_stmt::bind_param():型別定義字串不符合
使用mysqli_stmt::bind_param() 執行準備好的語句時,至關重要的是類型定義字串中的元素數量與綁定變數的數量相符。這種不匹配通常會導致錯誤訊息:「類型定義字串中的元素數量與綁定變數的數量不符。」
問題陳述
原始查詢涉及使用準備好的語句將65 個變數注入到資料庫中。但是,變數的數量與類型定義字串中“s”字元的數量有差異。
解決方法
型別定義字串中的字元數類型定義字串(「s,s...」)必須等於查詢中綁定變數的數量。在本例中,有 65 個綁定變量,因此類型定義字串應包含 65 個“s”字元。
範例
// Prepare query $query3 = '... (65 bind variables here) ...'; // Prepare statement $stmt = $dbConnection->prepare($query3); // Bind parameters $stmt->bind_param( "ssssssssssssssssssssssssssssssssssssssssssssssssssssssssss", // 65 variables listed here ); // Execute query $stmt->execute();
在此範例中,類型定義字串包含 65個「s」字符,與變數中的數量相符
常見陷阱
其他注意事項
以上是為什麼 mysqli_stmt::bind_param() 會拋出「型別定義字串不符」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!