0

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

在我的数据库中,我有 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."%'
4

2 回答 2

2

这只是一个语法调整:

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

希望有帮助

于 2013-05-01T09:07:50.250 回答
0

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

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

我还希望您知道您有 sql 注入的风险,看看这里如何防止 PHP 中的 SQL 注入?. 您应该使用准备好的陈述来避免任何风险

于 2013-05-01T09:09:54.180 回答