我在我的网站上创建了一个搜索引擎,用户可以输入他们喜欢的内容并显示结果。下面是我用来获取结果的代码,但由于语法错误而无法正常工作。
在我的数据库中,我有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."%'
答案 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?。您应该使用准备好的法规来避免任何风险