O uso da classe Zend_Db_Select é muito simples, o intuito dela é proporcionar ao desenvolvedor a possibilidade de fazer consultas complexas sem a necessidade de escrever código SQL, e sim utilizando um objeto, abaixo estarei mostrando alguns mini-exemplos.
Consulta simples, como um SELECT * FROM `users`
$select = new Zend_Db_Select(); $select->from(?users?); $rs = $select->query(); $data = $rs->fetchAll();
Consulta com inserção de clausula WHERE, como um SELECT * FROM `users` WHERE `id` > 10:
$select = new Zend_Db_Select(); $select->from(?users?); $select->where(?id > ??, 10); $rs = $select->query(); $data = $rs->fetchAll();
· Consulta com seleção de campos e cláusula WHERE, como um SELECT id, name FROM `users` WHERE id > 10:
$select = new Zend_Db_Select(); $select->from(?users?); $select->columns(?id, name?); $select->where(?id > ??, 10); $rs = $select->query(); $data = $rs->fetchAll();
· Consulta com seleção de campos e cláusula WHERE e INNER JOIN, como um SELECT `users`.`id`, `users`.`name`, `pictures`.`address` FROM `users` INNER JOIN `pictures` ON `pictures`.`user_id` = `users`.`id` WHERE id > 10;
$select = new Zend_Db_Select(); $select->from(?users?); $select->columns(?users.id, users.name, pictures.address?); $select->joinInner(?picures?, ?picures.user_id = user.id?); $select->where(?id > ??, 10); $rs = $select->query(); $data = $rs->fetchAll();
Além dos métodos utilizados acima a api da classe na qual o Drimio_Db_Select extende em http://framework.zend.com/apidoc/core/Zend_Db/Select/Zend_Db_Select.html