【发布时间】:2020-01-30 05:35:39
【问题描述】:
我正在尝试使用以下语法从数据库中找到一个确切的单词。
SELECT count(*) as total FROM node_field_data node LEFT JOIN book book ON node.nid = book.nid LEFT JOIN node__body body ON node.nid = body.entity_id LEFT JOIN node__field_rule_number rule_number ON node.nid = rule_number.entity_id LEFT JOIN node__field_effective_date effective_date ON node.nid = effective_date.entity_id LEFT JOIN node__field_end_date end_date ON node.nid = end_date.entity_id WHERE ( node.title REGEXP :text OR body.body_value REGEXP :text OR rule_number.field_rule_number_value REGEXP :text ); Array ( [:text] => [[:<:]]law[[:>:]] )
它给了我以下错误
SQLSTATE[HY000]: 一般错误: 3685 Illegal argument to a regular 表达。
谁能告诉我我在哪里犯了错误,下面是我试图找到完全匹配的代码
if ($exact) {
$text = "";
foreach($keywords as $keyword) {
$text = $text . preg_quote($keyword) . " ";
}
$text = preg_replace('/\s+$/', '', $text);
$params[':text'] = "[[:<:]]".$text."[[:>:]]";
}
【问题讨论】:
-
请在此错误后面包含完整的 PHP 代码。
-
@TimBiegeleisen 我已添加代码,请您检查并告诉我
-
您解决了吗?您的确切版本的 MySQL 是什么? 8.?.?
标签: mysql-8.0