您好,UncleToo欢迎您!  为了更好的浏览本站,请使用高版本浏览器
RSS  Tag     设为首页 | 加入收藏
 您所在的位置:首页 > PHP框架 > ZendFramework

Zend Framework中执行sql语句的两种方法

作者:  来源:原创  日期:2013-11-16 8:21:13
收藏  评论:( 0 )  阅读:894

Zend Framework中的Zend_Db_Table类可以实现对数据库的增删改查,但是在实际开发过程中,这些操作远不够我们使用,我们需要定义自己的sql语句,这样Zend_Db_Table类就无法实现了,这里介绍几种方法,让Zend Framework执行自定义的SQL。

一、使用Zend_Db_Adapter

如果一个类继承了Zend_DB_Table,那么我们可以这么写:

$sql = "delete from options where id=?";
$this->getAdapter()->query($sql, array('1'));

这里要注意,在Zend Framework手册的例子都是采用?实现参数占位符,这是在数据库adapter设为mysqli的时候才这样用的。如果数据库adapter采用的是PDO_MYSQL,则不能使用问号占位符,而是得使用参数化的方式,此时我们就要这样写:

$sql = "delete from options where id=:id";
return $this->getAdapter()->query($sql, array("id"=>1));

这跟上面写法效果是一样的。

二、使用Zend_Db_Statement

同样,这种方法也要区分PDO_MYSQL 环境和MySQLLi环境。他们区别就是SQL参数的占位符不同

PDO_MYSQL 环境

$sql ='delete from options where id=:id';
$stmt = new Zend_Db_Statement_Pdo($this->getAdapter(), $sql);
return $stmt->execute(array(":id" => $id));

MySQLLi环境

$sql = 'delete from options where id=?';
$stmt = new Zend_Db_Statement_Mysqli($this->getAdapter(), $sql);
return $stmt->execute(array($id));

这里总结一点,当我们在Zend Framework中执行自定SQL时一定要区分sql参数的占位符。



除非特别声明,本站所有PHP教程及其他教程/文章均为原创、翻译或网友投稿,版权均归UncleToo中文网所有, 转载请注明作者及出处。
原文网址:http://www.uncletoo.com/html/zend/658.html
读完这篇文章后,你是否有所收获? 分享是一种生活的信念!
  • 0
  • 0
我来说两句
更多>>网友评论
UncleToo,一档有态度的PHP中文网

图片教程