SELECT * FROM datatable WHERE Name LIKE ? OR Code LIKE ? OR Date LIKE ? OR Inserter LIKE ? AND ID = '2'php sql連接出錯: mysqli_stmt::bind_param(): Number of variables does not match number of parameters in Prepared statement in這是錯誤代碼,我正在使用stmt->prepare, stmt->execute 等等在 php.ini 中。只需一個 LIKE 就可以正常工作?(WHERE Name LIKE ? AND ID = '2')。如何更換或解決此問題?真實的代碼if ($stmt = $db->prepare($SearchQuery)) { // Bind variables to the prepared statement as parameters $stmt->bind_param("s", $param_term); // Set parameters $param_term = '%' . $_POST["String"] . '%'; // Attempt to execute the prepared statement if ($stmt->execute()) { $result = $stmt->get_result();
2 回答

桃花長相依
TA貢獻1860條經(jīng)驗 獲得超8個贊
你有 4 個?參數(shù),你只綁定一個值
$stmt->bind_param("s", $param_term);
這應該是
$stmt->bind_param("ssss", $param_term,
$param_term,
$param_term,
$param_term);
以便每個參數(shù)?都有一個值。
此外,查詢將需要括號才能像這樣正常工作
WHERE (Name LIKE ?
OR Code LIKE ?
OR Date LIKE ?
OR Inserter LIKE ? )
AND ID = '2'

九州編程
TA貢獻1785條經(jīng)驗 獲得超4個贊
如果您想嚴格地將參數(shù)的一個副本傳輸?shù)讲樵冎校僭O您搜索相同的模式),您可以使用
SELECT *
FROM datatable
WHERE CONCAT_WS(CHAR(X), Name,Code,Date,Inserter) LIKE ?
AND ID = '2'
其中 CHAR(x) 是在字段或模式中找不到的任何字符。
- 2 回答
- 0 關注
- 165 瀏覽
添加回答
舉報
0/150
提交
取消