首頁 > 資料庫 > mysql教程 > MySQLi 綁定參數錯誤:為什麼我的類型字元數與佔位符不符?

MySQLi 綁定參數錯誤:為什麼我的類型字元數與佔位符不符?

Patricia Arquette
發布: 2024-11-29 10:05:13
原創
364 人瀏覽過

MySQLi Bind Param Error: Why Does My Number of Type Characters Mismatch My Placeholders?

綁定參數錯誤:數字不符

在MySQLi 準備好的語句中,類型字元(例如,字串中的「 s」)的數量bind_param 方法必須與SQL中的佔位符數量(例如“?”)符合

問題摘要

您收到錯誤,因為程式碼中的bind_param 呼叫與準備好的語句中的佔位符數量不符:

$stmt->bind_param("s,s,s,s,s,s,s,...", $project_name, $status, ...);
登入後複製

這可能是由於表單輸入的數量(65)與佔位符的數量不符

正確格式

bind_param的正確格式如下:

$stmt->bind_param("type_characters", $variable1, $variable2, ...);
登入後複製

其中「type_characters」是包含一個字元的字串查詢中的每個佔位符,指示資料的類型

計算類型字元

為避免不匹配,建議手動或使用正規表示式計算佔位符的數量。在您的情況下,您應該確認準備好的語句包含 65 個佔位符。

範例

對於具有 65 個佔位符的修改後的準備好的語句,正確的 bind_param呼叫將是be:

$stmt->bind_param("sssssssssssssssssssssssssssssssssssssssssssssssssssssssss", $project_name, $status, ...);
登入後複製

提示

為了幫助確保正確綁定,請考慮使用以下方法來計算SQL 查詢中佔位符的數量:

function countPlaceholders($sql) {
  return substr_count($sql, '?');
}
登入後複製

以上是MySQLi 綁定參數錯誤:為什麼我的類型字元數與佔位符不符?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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