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!