php - 数据库; OR 语法无效

标签 php mysql

好吧,我有一个 sql 命令。请看下面。

$sql = "SELECT * FROM orders 
        WHERE loggedtime BETWEEN :time AND :times 
        AND name LIKE :keyword OR odryname LIKE :keyword OR pdryname LIKE :keyword 
        OR jlc LIKE :keyword OR odrphone LIKE :keyword 
        OR biid LIKE :keyword OR dstreet LIKE :keyword ";
$q=$con->prepare($sql);
$q->bindvalue(":keyword", "%".$keyword."%");

因此该命令一直有效,直到其中的第一个 OR...它会检查记录的时间是否是我输入的时间以及 NAME 是否类似于关键字..

命令中唯一应该不变的部分是 WHERE loggedtime = :time 其余部分应该基于关键字是否匹配...但是如果该订单上的时间不正确。

最佳答案

将其放入 () loggedtime BETWEEN :time AND :times 因此您的查询应该是:

$sql = "SELECT * FROM orders 
WHERE (loggedtime BETWEEN :time AND :times) 
AND name LIKE :keyword OR odryname LIKE :keyword OR pdryname LIKE :keyword 
OR jlc LIKE :keyword OR odrphone LIKE :keyword 
OR biid LIKE :keyword OR dstreet LIKE :keyword ";

关于php - 数据库; OR 语法无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34728235/

相关文章:

php - 那么当我们在 PHP 中使用 'new' 时到底发生了什么

javascript - 使用 jquery/php 查找链接是否已访问

mysql - sql查询在2个表之间执行划分并将结果插入第三个表

mysql - 如果另一个表中不存在连接字段值,则从 JOIN 查询获取默认值

MySQL:如何从 MySQL 表中提取多个文本文件

php - Laravel Route 传递额外的变量

php - 在 PHP 代码中应用 HTML 代码 - 语法错误

php - php/javascript 中最好的跟踪下载方法是什么?

mysql - 导入的用户 ID 和主键?

mysql - 简单的 MySQL 更新无法正常工作并出现一般错误