2

我有一个搜索用户名的搜索表单。问题是,在我的数据库中,我有一个单独的名字和姓氏列。这就是我的查询当前的样子(这是在 PHP 脚本中,$term 是搜索输入):

SELECT * FROM profiles WHERE firstname LIKE '%$term%' OR lastname LIKE '%$term%'

当用户只输入名字或姓氏时,这可以正常工作,但对于诸如“John Smith”之类的全名,这将不起作用。

如何修改我的查询和/或 php 脚本以有效地解决此问题?例如,我应该先拆分字符串,还是等等?

4

1 回答 1

1

你可以做类似的事情

WHERE firstname||' '||lastname LIKE '%$term%'

这将 firstname 加上一个空格加上 last name 与%$term%.

但是,您不应该使用变量构建 SQL 查询。您应该通过 PDO 使用参数化查询。有关示例,请参见http://bobby-tables.com/php.html

于 2012-12-16T19:12:17.757 回答