Zend Raw SQL查询

时间:2014-07-15 22:47:27

标签: php mysql zend-framework

我希望在Zend Controller中执行原始SQL查询。

我在这里看http://framework.zend.com/manual/1.11/en/zend.db.statement.html并且说要做

    $sql = 'SELECT * FROM bugs WHERE reported_by = ? AND bug_status = ?';

    $stmt = new Zend_Db_Statement_Mysqli($db, $sql);

    $stmt->execute(array('goofy', 'FIXED'));

但每当我这样做时,它会给我一个错误的原因导致$ db ....什么是$ db应该持有因为它没有在文档中的任何地方说...

每当我完成时,我想返回一个数组,无论结果是什么,我能做什么像$resultArray = $stmt->execute(array('goofy', 'FIXED')); ???

谢谢,

2 个答案:

答案 0 :(得分:1)

它应该是Zend_Db_Adapter类型的对象。

在文档示例的其他地方,变量$db通常用作Zend_Db_Adapter的实例。我想一个人应该阅读完整的文档,并注意这样的约定。


重新评论:

您可以将application.ini文件加载到Zend_Config_Ini对象中,然后使用该Zend_Config对象作为Zend_Db_Factory的参数。请参阅此处的示例:http://framework.zend.com/manual/1.11/en/zend.db.adapter.html#zend.db.adapter.connecting.factory-config

答案 1 :(得分:1)

Try this code:

Put code in bootstrap.php
protected function _initRegistry() {
        $this->bootstrap('db');
        $dbc = $this->getResource('db');
        $dbc->setFetchMode(Zend_Db::FETCH_OBJ);
        Zend_Registry::set('db', $dbc);
        global $db;
        $db = Zend_Registry::get('db');
    }