我有以下 WHERE 条件
WHERE table.status IN ('Active') AND table.endDate < :endDate AND :user IN (table.userId, mach.techId, mach.respId) AND 1
我绑定(bind)了参数并且它可以工作,但是如果条件是
WHERE :user IN (table.userId, mach.techId, mach.respId) AND table.status IN ('Active') AND table.endDate < :endDate AND 1
这不起作用。
订购条件有什么规定吗?此外,endDate
条件始终被忽略。
旁注:如果您对最后的 AND 1
感到好奇,那是因为我“构造”了我的查询条件。
最佳答案
Is there any rule about ordering conditions?
对于命名占位符 - 否。
This doesn't work.
好吧,调试一下。
从设置PDO为异常模式开始
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
并研究错误消息
关于php - WHERE 条件中的顺序如何影响使用 PDO::bindParam() 的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19989608/