Php 没有Zend框架的Zend_Db

Php 没有Zend框架的Zend_Db,php,zend-framework,zend-db,Php,Zend Framework,Zend Db,我想在没有Zend_框架的情况下使用Zend_Db。我想为我的现有网站合并Zend_Db,该网站不是使用Zend Framework创建的。可以这样使用Zend_Db吗?你能推荐一个好的教程或例子吗 在某种程度上,这取决于您使用的web框架。但是,总的来说,这方面的问题相当清楚 在引导中创建适配器实例。例如: $db = Zend_Db::factory('Pdo_Mysql', array( 'host' => '127.0.0.1', 'username' =&

我想在没有Zend_框架的情况下使用Zend_Db。我想为我的现有网站合并Zend_Db,该网站不是使用Zend Framework创建的。可以这样使用Zend_Db吗?你能推荐一个好的教程或例子吗

在某种程度上,这取决于您使用的web框架。但是,总的来说,这方面的问题相当清楚

在引导中创建适配器实例。例如:

$db = Zend_Db::factory('Pdo_Mysql', array(
    'host'     => '127.0.0.1',
    'username' => 'webuser',
    'password' => 'xxxxxxxx',
    'dbname'   => 'test'
));
如果您计划使用
Zend\u Db\u 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);

希望这有帮助。干杯

使用Zend_Db甚至比使用原始PDO更可取(IMHO)。只需创建一个$db对象,然后使用Zend_db_Select类创建SQL语句,并将$Select SQL语句传递给fetch*(fetchRow,fetchAll…)方法。

对于Zend Framework 2。*,创建适配器将是:

$db = new \Zend\Db\Adapter\Adapter([
    'driver' => 'Pdo_Mysql',
    'host' => '127.0.0.1',
    'username' => 'webuser',
    'password' => 'xxxxxx',
    'database' => 'test',
]);
要创建,请选择:

$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);

可能会有帮助。如果使用,则更简单。

谢谢。我试试这个。