Mysql поддерживает подготовленные заявления следующим образом:
http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html
Есть ли поддержка в Zend Framework (я не мог найти его) и как его использовать. Если нет, как бы вы реализовали подготовленные заявления как аддон Zend Framework.
$sql = "SELECT * FROM table_name WHERE id = :id "; $stmt = Zend_Registry::get("db")->prepare($sql); $data=array(array('id'=> $id); $stmt->execute($data); print_r($stmt->fetchAll());
Вы можете попробовать это
$sql = "SELECT * FROM table_name WHERE id = :id'"; $stmt = new Zend_Db_Statement_Pdo($this->_db, $sql); $stmt->execute(array(':id' => $id));
После некоторых исследований я не нашел поддержку ZF для подготовленных заявлений таким же образом. Единственное, что вы можете сделать, это подражать ему, как @Nikita Gopkalo.
Вы должны посмотреть на документацию zend.
https://github.com/zendframework/zend-db/blob/master/doc/book/result-set.md
так что вот пример кода.
<?php use Zend\Db\Adapter\Driver\ResultInterface; use Zend\Db\ResultSet\ResultSet; $statement = $driver->createStatement('SELECT * FROM users'); $statement->prepare(); $result = $statement->execute($parameters); if ($result instanceof ResultInterface && $result->isQueryResult()) { $resultSet = new ResultSet; $resultSet->initialize($result); foreach ($resultSet as $row) { echo $row->my_column . PHP_EOL; } } ?>