php - 在 PHP 中的 mysqli 准备语句中使用 REGEXP

标签 php mysql regex mysqli prepared-statement

我正在尝试使用这样的(新手)代码进行简单的搜索过程:

$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);

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

关于php - 在 PHP 中的 mysqli 准备语句中使用 REGEXP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21890498/

相关文章:

php - 表单数据未设置

mysql - 在 MySQL WorkBench 中打开现有数据库

mysql - SELECT 查询,其中 LIMIT 是重复键的不同计数

python - 使用python的re.sub正则表达式替换字符串

ruby 正则表达式提取单引号之间的单词

php 与 jquery html 弹出

php - 为数组中的每个项目生成一个 mysql 查询

php - 表字段记录 VARCHAR 为 0

mysql - 这里使用什么类型的连接?

python - 正则表达式:将单词和数字与小数相匹配