使用LIKE的Mysql搜索框

时间:2013-05-01 09:06:10

标签: php mysql sql

我在我的网站上创建了一个搜索引擎,用户可以输入他们喜欢的内容并显示结果。下面是我用来获取结果的代码,但由于语法错误而无法正常工作。

在我的数据库中,我有10行,每行包含4列(id,author,second_author,book_name)。我的目标是,如果用户输入在“作者”中找到的名称,我想要检索该结果,如果他们输入在book_name中找到的名称,则为“或”我想要检索该结果,依此类推列..

我知道正确的方法是使用LIKE运算符,但是如果要将关键字与多列进行比较,那该怎么办?

我试过这个但是没有工作:

SELECT * FROM book_list WHERE author OR second_author OR book_name LIKE '%".$search_key."%'

2 个答案:

答案 0 :(得分:2)

这只是语法调整:

SELECT * FROM book_list
WHERE author LIKE '%".$search_key."%'
OR second_author LIKE '%".$search_key."%'
OR book_name LIKE '%".$search_key."%'

希望有所帮助

答案 1 :(得分:0)

您的查询有错误,您必须在每列上搜索

SELECT * FROM book_list WHERE author  LIKE '%".$search_key."%' OR second_author  LIKE '%".$search_key."%' OR book_name LIKE '%".$search_key."%'

我还希望你知道你有sql注入的风险,看看How can I prevent SQL injection in PHP?。您应该使用准备好的法规来避免任何风险