【问题标题】:Zend_Db: Prepared statement not processing parametersZend_Db:准备好的语句不处理参数
【发布时间】:2010-09-02 07:03:42
【问题描述】:

我正在使用 Zend_Db 和 Pdo_Mysql 驱动程序。这个查询没有给出任何结果:

$s = $db->prepare('SELECT ET.id
                    FROM elementTypes AS ET, language AS L1 
                    WHERE L1.strId = ET.dispName AND L1.language = ?');
$s->execute(array(2));                                          
pr($s->fetchAll());

如果我对参数进行硬编码,则会返回预期的行。

这里发生了什么?

编辑:这是一个带有更简单查询的精简脚本:http://pastebin.com/84UtcGGZ

Eidt 2:我进一步深入研究,发现问题在于 PDO 并将 ENUMS 与整数进行比较。看到这个问题:PDO cannot compare mysql ENUM using integers in prepared statements 如果您知道有关如何使其在 Zend_Db 上运行的任何修复/解决方法,请发布! :)**

【问题讨论】:

    标签: php sql zend-framework pdo zend-db


    【解决方案1】:

    语句不起作用的原因是L1.language是一个ENUM,不能将ENUMS与Zend_Db/PDO中的整数进行比较。

    这个问题解释了为什么以及如何避免这种情况:PDO cannot compare mysql ENUM using integers in prepared statements

    【讨论】:

      猜你喜欢
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多