Вопрос по php, prepared-statement, mysql, zend-framework – Как использовать подготовленные заявления в Zend Framework

4

Mysql поддерживает подготовленные заявления следующим образом:

http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html

Есть ли поддержка в Zend Framework (я не могу его найти) и как его использовать. Если нет, то как бы вы реализовали подготовленные операторы как дополнение к Zend Framework.

Ваш Ответ

4   ответа
1

$sql = "SELECT * FROM table_name WHERE id = :id'";
$stmt = new Zend_Db_Statement_Pdo($this->_db, $sql); 
$stmt->execute(array(':id' => $id));
это действительно работает так:dev.mysql.com/doc/refman/5.0/en/… или это просто эмуляция? Karol
Вы не можете повторно использовать этот же оператор в следующем запросе, не создавая его заново, поэтому он не будет работать таким же образом. Karol
1

х заявлений таким же образом. Единственное, что вы можете сделать, - это подражать, как написано @Nikita Gopkalo.

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

Вы должны посмотреть документацию 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;
  }
}

?>

Похожие вопросы