如何在 mysqli 中使用百分比绑定 LIKE 子句中的参数


How to bind a parameter inside of a LIKE clause with percentages in 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);

我做错了什么?

这只是标志的位置问题

$q = "SELECT col1, col2 FROM `Something` WHERE col2 LIKE ?";
$stmt->bind_param("s", '%' . $param . '%');

我知道这已经甩掉了很多人,你不是第一个:)

为了让这个工作,我必须这样做(类似于正确答案)......

$param = '%' . $param . '%'
$q = "SELECT col1, col2 FROM `Something` WHERE col2 LIKE ?";
$stmt->bind_param("s", $param );