微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在PHP中使用mysqli中的REGEXP预处理语句

我试图用这样的(noob)代码进行简单的搜索过程:

$prep->prepare("SELECT * FROM details WHERE id REGEXP '?'");
$prep->bind_param("s", $search_query);

它给了我这个警告:

Warning: MysqLi_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement

我猜这可能是因为问号也用于RegExp(可选的前一个字符).

有关如何在预准备语句中使用REGEXP(没有冲突的问号)的任何想法?

谢谢.

解决方法:

取出围绕?的单引号.您的代码应为:

$prep->prepare("SELECT * FROM details WHERE id REGEXP ?");
$prep->bind_param("s", $search_query);

就目前而言,你正在传递一个参数,但是?在单引号中被视为字符串,而不是参数标记.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐