Zend原始SQL查询


Zend Raw SQL Query

我希望在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')); ??

谢谢,

它应该是一个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

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');
    }