如何使用Zend框架准备语句(How to use prepared statements in Z

2019-06-23 13:25发布

MySQL支持以这种方式准备语句:

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

有没有为它支持Zend框架(我找不到它),以及如何使用它。 如果没有,你将如何实现准备好的语句作为Zend框架的插件。

Answer 1:

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


Answer 2:

你可以尝试这样的

$sql = "SELECT * FROM table_name WHERE id = :id'";
$stmt = new Zend_Db_Statement_Pdo($this->_db, $sql); 
$stmt->execute(array(':id' => $id));


Answer 3:

经过一番研究,我没有找到ZF对在这个同样的方式准备语句的支持。 你能做的唯一的事情就是模仿它作为@Nikita Gopkalo公布。



Answer 4:

你应该看看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;
  }
}

?>


文章来源: How to use prepared statements in Zend Framework