WHERE条件中的顺序如何影响使用PDO :: bindParam()的查询?

时间:2013-11-14 22:18:08

标签: php mysql pdo where

我有以下WHERE条件

WHERE table.status IN ('Active') AND table.endDate < :endDate AND :user IN (table.userId, mach.techId, mach.respId) AND 1

我绑定参数并且它可以工作,但是如果条件是

WHERE :user IN (table.userId, mach.techId, mach.respId) AND table.status IN ('Active') AND table.endDate < :endDate AND 1

这不起作用。

有关订购条件的规定吗?此外,endDate条件始终被忽略。

旁注:如果你最后想知道AND 1,那是因为我“构建”了我的查询条件。

2 个答案:

答案 0 :(得分:0)

  

有关订购条件的规定吗?

对于命名占位符 - 否。

  

这不起作用。

好吧,调试它。
从在异常模式下设置PDO开始

$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

并研究错误消息

答案 1 :(得分:0)

由于这个被接受的回应,我想出了问题。 PDO - bindParam not working

我意识到我错过了一个关于我问题的重要细节。我在foreach循环中使用了bindParam()。我刚刚将bindParam()切换到bindValue(),现在它可以正常工作。