在这种情况下,我正在尝试执行以下操作:
$stmt = $mysqli->prepare("SELECT tag_name
FROM tags
WHERE tag_name LIKE '?%';");
$stmt->bind_param('s',$tag_string);
MySQL查询本身在手动执行时工作正常,但是当我尝试在上面动态绑定值时,我得到以下错误:
Number of variables doesn't match number of parameters in prepared statement
哪个不是真的。谁能告诉我这里发生了什么?
答案 0 :(得分:2)
你不能像这样连接它,因为占位符占有完整值的位置,而不是它的一部分。
正确的查询看起来像
... LIKE CONCAT(?, '%')
答案 1 :(得分:1)
更改此
WHERE tag_name LIKE '?%';");
到此
WHERE tag_name LIKE ?");