【发布时间】:2019-09-16 15:25:00
【问题描述】:
我的数据库中有一个表,我想获取表中的记录并与用户输入的文本进行比较,如果它们匹配,则获取并显示表中该行的其他字段。
这是我的代码:
$q = "SELECT * FROM Kala2 WHERE 1";
$res = mysqli_query($db, $q);
while ($row = mysqli_fetch_assoc($res)) //For each word
{
$t = $row[sharhe_kala];
$p = $row[mark];
if (preg_match("/$t/i", $text)) {
if (preg_match("/$p/i", $text)) {
*** do something ***
}}
它可以工作,但是当用户 ($text) 输入的单词不在数据库中时,它会发送此警告:
PHP Warning: preg_match(): Unknown modifier '1' in
$row[sharhe_kala] 或 $row[mark] 为数字时也不回答
例如,如果 $t="KOYO" 和 $p="Ballbearing" 并且用户输入 $text="koyo ballbearing" 它会显示结果及其正常,但如果用户输入 $text="ntn zzz" 它会发送此警告:PHP Warning: preg_match(): Unknown modifier '1' in
如果$t="222" 和$p="Ballbearing" 和用户输入$text="222 ballbearing"它不显示resault 也不显示任何警告
【问题讨论】:
-
$t和$p的内容是什么,我认为它们包含特殊字符。 -
他们是一些名字(字母)
-
请edit your question 并添加可复制的示例。
-
美元符号 $ 标志着正则表达式检查的结束,因此您的正则表达式必须类似于“/{$p}/i”
-
为我工作。即使有数值。你在别处有错误。
标签: php regex preg-match