Zend_Db без Zend Framework

Я хочу использовать Zend_Db без Zend_Framework. Я хочу включить Zend_Db для моего существующего веб-сайта, который не был создан с использованием Zend Framework. Можно ли использовать Zend_Db, как это? Можете ли вы порекомендовать хороший учебник или пример того, как это сделать?

В какой-то степени это зависит от используемой вами веб-структуры. Но, в общем, документация Zend_Db довольно понятна в этом отношении.

Создайте экземпляр адаптера в бутстрапе. В качестве примера:

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

Надеюсь это поможет. Ура!

Для 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(); 

Или, если вы хотите получить чистый SQL из $ select:

 $selectSql = $sql->getSqlStringForSqlObject($select); 

Документы могут быть полезны. Это может быть еще проще, если используется TableGateway .

Использование Zend_Db даже предпочтительнее (IMHO) с использованием Raw PDO. Просто создайте объект $ db, а затем создайте SQL-выражения с помощью класса Zend_Db_Select и передайте выражение $ select SQL в методы fetch * (fetchRow, fetchAll …).