我想在没有Zend_Framework的情况下使用Zend_Db。我想合并我现有的网站,不是使用Zend Framework的Zend_Db。可以这样使用Zend_Db吗?你能推荐一个好的教程或例子来做好吗?
发布于 2011-01-30 14:55:21
在某种程度上,这取决于您使用的web框架。但是,总的来说,Zend_Db documentation在这方面是相当清楚的。
在引导程序中创建一个适配器实例。举个例子:
$db = Zend_Db::factory('Pdo_Mysql', array(
'host' => '127.0.0.1',
'username' => 'webuser',
'password' => 'xxxxxxxx',
'dbname' => 'test'
));如果您计划使用Zend_Db_Table,则可以将其设置为默认适配器:
Zend_Db_Table::setDefaultAdapter($db);在任何情况下,将此适配器保存到您可以访问它的位置都很有帮助。例如:
Zend_Registry::set('db', $db);然后在您的下游代码中,使用此适配器为select()、insert()、update()、delete()等创建查询:
$db = Zend_Registry::get('db');
$select = $db->select()
->from('posts')
->where('cat_id = ?', $catId)
->order('date_posted DESC')
->limit(5);
$rows = $db->fetchAll($select);希望这能有所帮助。干杯!
发布于 2014-12-12 17:19:18
对于Zend Framework 2.*,创建适配器将是:
$db = new \Zend\Db\Adapter\Adapter([
'driver' => 'Pdo_Mysql',
'host' => '127.0.0.1',
'username' => 'webuser',
'password' => 'xxxxxx',
'database' => 'test',
]);要创建select:
$sql = new \Zend\Db\Sql\Sql($db);
$select = $sql->select()
->from('posts')
->where(array('cat_id' => $catId))
->order('date_posted DESC')
->limit(5);
$statement = $sql->prepareStatementForSqlObject($select);
$results = $statement->execute();或者,如果您想从$select获取纯SQL:
$selectSql = $sql->getSqlStringForSqlObject($select);Docs可能会有所帮助。如果使用TableGateway,它甚至可以更简单。
发布于 2011-02-10 21:26:46
使用Zend_Db甚至比使用Raw PDO更可取。只需创建一个$db对象,然后使用Zend_Db_Select类创建$select语句,并将SQL语句传递给fetch* (fetchRow,fetchAll...)方法。
https://stackoverflow.com/questions/4840941
复制相似问题