我有一个搜索用户名称的搜索表单。问题是,在我的数据库中,我有一个单独的名字和姓氏。这就是我的查询当前的样子(这是在PHP脚本中,$ term是搜索输入):
SELECT * FROM profiles WHERE firstname LIKE '%$term%' OR lastname LIKE '%$term%'
当用户只输入名字或姓氏时,这样可以正常工作,但对于诸如“John Smith”之类的全名,这将不起作用。
如何修改查询和/或php脚本以有效解决此问题?例如,我应该首先拆分字符串,还是等等?
答案 0 :(得分:1)
您可以执行类似
的操作WHERE firstname||' '||lastname LIKE '%$term%'
比较名字加上空格加上%$term%
的姓氏。
但是,您不应该使用变量构建SQL查询。您应该通过PDO使用参数化查询。有关示例,请参阅http://bobby-tables.com/php.html。