[英]PHP : mysqli search from database
我正在使用php mysqli做一个非常简单的搜索操作,在我的数据库中有一个我要搜索的公司名称字段,这就是我正在使用的
SELECT * FROM directory WHERE title LIKE '$sq%'
标题是我通过$_POST
获得的$_POST
其余查询工作正常,但如果公司名称为
公司名称 ,如果我输入的名称不显示搜索结果,但仅显示名字,我该如何解决?需要您的帮助
您需要在查询前面加通配符。 %
表示左侧和右侧允许其他任何内容。
用您当前的查询:
SELECT * FROM directory WHERE title LIKE '$sq%'
您需要标题以确切的短语开头。 尝试:
SELECT * FROM directory WHERE title LIKE '%$sq%'
匹配搜索词之前的任何内容并进行搜索。
这也应该参数化 :
SELECT * FROM directory WHERE title LIKE ?
然后绑定'%' . $sq . '%'
'%' . $sq . '%'
'%' . $sq . '%'
。
有关通配符的更多信息: http : //dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html
简单的例子:
'chri%'
将匹配chris
, chrissss
, christopher
,而不匹配kris
。
%ris%
将与chris
, chrissss
, christopher
和kris
匹配。
%ris
会匹配chris
和kris
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.