[英]PHP SQL STMT SELECT multiple LIKE ? is it possible?
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
等等。
這僅適用於一個 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();
你有 4 ?
參數並且您只綁定一個值
$stmt->bind_param("s", $param_term);
這應該是
$stmt->bind_param("ssss", $param_term,
$param_term,
$param_term,
$param_term);
這樣每個參數?
得到一個值。
此外,查詢將需要括號才能像這樣正常工作
WHERE (Name LIKE ?
OR Code LIKE ?
OR Date LIKE ?
OR Inserter LIKE ? )
AND ID = '2'
如果您想將參數的一個副本嚴格傳輸到查詢中(假設您搜索相同的模式),您可以使用
SELECT *
FROM datatable
WHERE CONCAT_WS(CHAR(X), Name,Code,Date,Inserter) LIKE ?
AND ID = '2'
其中 CHAR(x) 是在字段或模式中找不到的任何字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.