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