好吧,我有一个 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/