MySQL支持以这种方式准备的语句:如何使用准备好的声明中Zend框架
http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html
是否有它支持Zend框架(我找不到它),以及如何使用它。如果不是,你将如何执行Zend Framework插件的预准备语句。
MySQL支持以这种方式准备的语句:如何使用准备好的声明中Zend框架
http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html
是否有它支持Zend框架(我找不到它),以及如何使用它。如果不是,你将如何执行Zend Framework插件的预准备语句。
经过一番研究,我没有找到ZF对在这个同样的方式准备语句的支持。你唯一能做的就是像@Nikita Gopkalo发布的那样模仿它。
你可以尝试这样的
$sql = "SELECT * FROM table_name WHERE id = :id'";
$stmt = new Zend_Db_Statement_Pdo($this->_db, $sql);
$stmt->execute(array(':id' => $id));
$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());
你应该看看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;
}
}
?>
真的能行这样的:http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html还是它只是一个仿真? – Karol 2012-04-11 10:48:33
您不能在下次请求中重复使用这个完全相同的语句,而无需重新创建它,因此它不会以相同的方式工作。 – Karol 2012-06-27 08:06:35