PHP MYSQL 查询未获取多个 WHERE 条件

Posted

技术标签:

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

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

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

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

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

我在这里做错了什么?

【问题讨论】:

【参考方案1】:

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

正确查询:

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

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

【讨论】:

以上是关于PHP MYSQL 查询未获取多个 WHERE 条件的主要内容,如果未能解决你的问题,请参考以下文章