zend tutorial framework php zend-framework zend-db

php - tutorial - Zend_Db sin Zend Framework



zend framework 3 tutorial (3)

Quiero usar Zend_Db sin Zend_Framework. Quiero incorporar Zend_Db para mi sitio web existente que no fue creado usando Zend Framework. ¿Es posible usar Zend_Db de esta manera? ¿Me puede recomendar un buen tutorial o un ejemplo de cómo hacerlo bien?


Para Zend Framework 2. *, la creación del adaptador sería:

$db = new /Zend/Db/Adapter/Adapter([ ''driver'' => ''Pdo_Mysql'', ''host'' => ''127.0.0.1'', ''username'' => ''webuser'', ''password'' => ''xxxxxx'', ''database'' => ''test'', ]);

Para crear seleccione:

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

O bien, si desea obtener SQL puro de $ select:

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

Los documentos pueden ser útiles. Puede ser aún más simple si se usa TableGateway .


El uso de Zend_Db sería incluso preferible (en mi humilde opinión) sobre el uso de Raw PDO. Simplemente cree un Objeto $ db y luego cree Declaraciones SQL usando la Clase Zend_Db_Select y pase la Instrucción SQL $ select a los métodos fetch * (fetchRow, fetchAll ...).


Hasta cierto punto, esto depende del marco web que está utilizando. Pero, en general, la documentación de Zend_DB es bastante clara en este sentido.

Crea una instancia de adaptador en tu arranque. Como ejemplo:

$db = Zend_Db::factory(''Pdo_Mysql'', array( ''host'' => ''127.0.0.1'', ''username'' => ''webuser'', ''password'' => ''xxxxxxxx'', ''dbname'' => ''test'' ));

Si planea usar Zend_Db_Table , puede hacer que este sea el adaptador predeterminado:

Zend_Db_Table::setDefaultAdapter($db);

En cualquier caso, es útil tener este adaptador guardado en algún lugar donde pueda acceder a él. Por ejemplo:

Zend_Registry::set(''db'', $db);

Luego, en su código de flujo descendente, use este adaptador para crear consultas para select() , insert() , update() , delete() , etc.

$db = Zend_Registry::get(''db''); $select = $db->select() ->from(''posts'') ->where(''cat_id = ?'', $catId) ->order(''date_posted DESC'') ->limit(5); $rows = $db->fetchAll($select);

Espero que esto ayude. ¡Aclamaciones!