【发布时间】:2017-02-28 09:52:33
【问题描述】:
尝试为我的问题寻找答案。如果有人问过类似的问题,请指向该页面。
我有一个表单,用户在一个或多个文本字段中输入搜索词。
然后传递给SQL语句:
WHERE st.Description LIKE '%$Description%'
AND st.Number LIKE '%$Number%'
AND st.Color LIKE '%$Color%'
这将返回单词包含用户输入的任何匹配项。
如果用户使用引号(如“搜索词”),有什么方法会搜索完全匹配?
最佳做法是什么?
【问题讨论】:
-
您可以在查询本身中处理此逻辑,或者最好在 PHP 代码中处理它。如果搜索字符串包含引号,则使用不带通配符
%的不同LIKE表达式。 -
你的意思是遍历输入文件并使用 if 语句,如果它包含引号?如果是这样,将表达式放入 php 变量中?
-
我的意思是检查你的 PHP 代码中的输入,并适当地处理引号。基本上,如果
LIKE 'search string'有引号,你想要LIKE '%search string%'如果它没有引号。 -
是的,PHP 如何检测单词/单词是否被引号包围?编辑:找到 preg_match('/^(["\']).*\1$/m', $string);
-
使用'%".$Description."%'