如何使用LIKE运算符修复SQL错误?

时间:2012-07-21 09:40:13

标签: php sql where sql-like

我正在尝试构建一个小型搜索引擎,可以浏览我网站上的文章。到目前为止,我已经编写了PHP代码,我的服务器没有问题。服务器所遇到的问题是我的SQL代码,据我所知,这是正确的,但它表示它“不是正确的语法”。

我正在尝试向该语句添加一个PHP变量,以使其搜索该变量的内容,因为内容中包含表单输入。变量(如您所见)称为$ search_input我的代码在这里:

$sql_code = "SELECT * FROM 'articles' WHERE 'tags' LIKE ‘%{$search_input}%’";

我确信我的语法有问题,但我看不清楚。我回顾了W3schools对WHERE子句和LIKE运算符的指南 - 找不到任何东西。我将非常感谢任何帮助 - 谢谢。

  • 感谢所有帮助人员 - 我尝试了Des'的第一篇文章,它与不同的帖子一起工作。但如果我想写一下:'在PHP中找到了以下结果'。然后在数据库中的每个搜索结果之后重复它。

它会在浏览器中显示:

找到以下结果:

HelloWorldPrimaryTest 看一看 本文档包含以下标记:hello world primary

找到以下结果:

主页 看一看 本文档包含以下标记:home

我不希望它重复“找到以下结果:”任何人都可以帮忙吗?非常感谢你迄今为止的所有帮助。

4 个答案:

答案 0 :(得分:4)

错误的引号,试试这个:

$sql_code = "SELECT * FROM articles WHERE tags LIKE '%{$search_input}%'";

最好使用prepared statements(PDO)。

答案 1 :(得分:1)

放手一搏

$sql_code = "SELECT * FROM 'articles' WHERE 'tags' LIKE '%".$search_input."%'";

答案 2 :(得分:0)

删除大括号并尝试

$sql_code = "SELECT * FROM 'articles' WHERE 'tags' LIKE '%$search_input%'";

答案 3 :(得分:0)

$ sql_code =“SELECT * FROM articles WHERE tags LIKE'%$ search_input%'”;

您不应该对表名或行名使用引号,您可以将其留空或使用刻度(table_name)代替