MySQL / PHP:如何将一个LIKE子句中的参数与mysqli中的百分比绑定?

时间:2016-01-17 20:48:20

标签: php mysqli

我正在使用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);

我做错了什么?

2 个答案:

答案 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);