我有以下 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
,那是因为我"构造"了我的查询条件。
有关于订购条件的规定吗?
对于命名的占位符 - 否。
这行不通。
好吧,调试它。
从在异常模式下设置 PDO 开始
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
并研究错误消息
由于这个公认的响应,我找到了问题所在。PDO - 绑定参数不起作用
我意识到我错过了我的问题的一个重要细节。我在foreach循环中使用了bindParam()。我刚刚将 bindParam() 切换到 bindValue(),现在它可以工作了。