我正在使用mysqli
,我有这个问题:
$q = "SELECT col1, col2 FROM `Something` WHERE col2 LIKE '%?%'";
如果我在PHP之外用一个单词代替?
查询它,同样的查询工作正常。在PHP中,我不能这样做。我得到的错误是:
mysqli_stmt :: bind_param():变量数与预准备语句中的参数数量不匹配[..]
查询在var_dump()
输出正常,参数本身也是如此。
这是bind_param()
:
$stmt->bind_param("s", $param);
我做错了什么?
答案 0 :(得分:5)
这只是放置标志的问题
$q = "SELECT col1, col2 FROM `Something` WHERE col2 LIKE ?";
$stmt->bind_param("s", '%' . $param . '%');
我知道这已经抛弃了很多人,你不是第一个:)
答案 1 :(得分:0)
要使其正常工作,我必须这样做(类似于正确答案)...
$ param ='%'。 $ param。 '%'
$ q =“从Something
那里选择SELECT col1,col2,如col2一样?”;
$ stmt-> bind_param(“ s”,$ param);