我有多个身份证 +
在表中一行的一个字段中,例如:(123+21654+412+12387)
我只需要精确匹配(例如:只需要“123”而不需要“123&12387”)
我的代码如下:
$var = $value['id'];
$result = mysqli_query($this->dbh, "SELECT id FROM table
WHERE id REGEXP '[[:<:]]$var[[:>:]]' ");
在regexp中使用变量有问题。
万一:
$result = mysqli_query($this->dbh, "Select id FROM table
WHERE id REGEXP '^$id|[\+]$id' ");
它可以工作,但它不返回完全匹配
2条答案
按热度按时间6l7fqoea1#
php提示:“插值”的工作方式如下:
"...$var[...]..."
将其视为$var[...]
.没有
[
,$var
假定为标量。"...{$var}[...]..."
是你需要的最后一个例子有大括号
{}
告诉php评估里面的内容,而不必关心后面的内容。更常见的用法:您的第二次尝试可以修复如下:
含义:
开始或结束时
+
,查找$id(插值后),
停下来喝一杯
+
或者是绳子的末端。rn0zuynd2#
我同意:
如果只有值,则应用第一个条件;如果字段以值开头,则应用第二个条件;如果字段以值结尾,则应用第三个条件;如果值位于字段中间,则应用第四个条件。