我希望在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'));
???
谢谢,
答案 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');
}