【问题标题】:PHP MYSQL Query not fetching multiple WHERE ConditionsPHP MYSQL 查询未获取多个 WHERE 条件
【发布时间】:2022-01-24 04:06:29
【问题描述】:

我有一个搜索功能,onkeydown 会给出建议。目前,该查询仅从表 customer_name 的一行中获取,并且我正在尝试将 id 行也用于搜索建议。

所以我的查询语法看起来像这样:

$query = "SELECT * FROM customers WHERE customer_name OR id like'%".$search."%' LIMIT 5";

但上面的查询只会从第二个表名中获取,即 id 而不是两者。

我在这里做错了什么?

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    我可能是错的,但WHERE customer_name 将始终评估为true,因此包括所有记录。你需要指定 什么 customer_name 应该被比较。

    正确查询:

    SELECT * FROM customers 
        WHERE customer_name LIKE '%".$search."%'
        OR id LIKE '%".$search."%'
    LIMIT 5;
    

    作为重要的安全提示,您应该查看prepared statements,而不是将数据与您的查询混合。这样做会使您容易受到 SQL 注入攻击。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-16
      • 2012-06-04
      相关资源
      最近更新 更多