4

Mysql以这种方式支持prepared statements:

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

Zend Framework 中是否支持它(我找不到它),以及如何使用它。如果没有,您将如何将准备好的语句实现为 Zend Framework 插件。

4

4 回答 4

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());
于 2013-11-04T12:48:15.003 回答
1

你可以这样尝试

$sql = "SELECT * FROM table_name WHERE id = :id'";
$stmt = new Zend_Db_Statement_Pdo($this->_db, $sql); 
$stmt->execute(array(':id' => $id));
于 2012-04-11T10:40:08.490 回答
1

经过一番研究,我没有发现 ZF 以同样的方式支持准备好的语句。您唯一能做的就是模仿@Nikita Gopkalo 发布的内容。

于 2012-06-27T08:08:54.280 回答
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;
  }
}

?>
于 2017-08-31T00:42:03.740 回答