【问题标题】:How do I Fix SQL Error with LIKE Operator?如何使用 LIKE 运算符修复 SQL 错误?
【发布时间】:2012-07-21 09:40:12
【问题描述】:

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

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

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

我确定我的语法有问题,但我看不出在哪里。我回顾了 W3schools 对 WHERE 子句和 LIKE 运算符的指南 - 找不到任何东西。我将不胜感激任何帮助 - 谢谢。

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

它会在浏览器中显示:

找到以下结果:

HelloWorldPrimaryTest 看一看 该文档有以下标签:hello world primary

找到以下结果:

首页 看一看 该文档有以下标签:主页

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

【问题讨论】:

  • 那些漂亮的引语来自:

标签: php sql where sql-like


【解决方案1】:

引用错误,试试这个:

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

最好使用prepared statements (PDO)。

【讨论】:

  • 再看一遍 ;-) 提示:表名和列名
【解决方案2】:

试一试

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

【讨论】:

    【解决方案3】:

    去掉大括号试试

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

    【讨论】:

    • 不是答案,你没有改变任何东西
    【解决方案4】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-08-30
      • 2019-06-22
      • 2020-04-30
      • 2013-01-19
      • 2020-10-04
      • 2013-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多