Zend Framework数据库操作
1 /** 2 * 给Zend_Db_Select增加where条件 3 * 4 * @param Zend_Db_Select $select 5 * @param array $where 6 * @return Zend_Db_Select 7 */ 8 protected function addWhereToSelect($select, $where) { 9 foreach ($where as $k=>$v) { 10 if ($v === null) { 11 $select->where($k); 12 } else { 13 $select->where($k, $v); 14 } 15 } 16 if ($this->_status_fieldname) { 17 $select->where($this->_status_fieldname . ' < ?', Mana_Const::STATUS_DEL); 18 } 19 return $select; 20 }
1 /** 2 * 给Zend_Db_Select增加where条件 3 * 4 * @param Zend_Db_Select $select 5 * @param array $where 6 * @return Zend_Db_Select 7 */ 8 protected function addWhereToSelect($select, $where) { 9 foreach ($where as $k=>$v) { 10 if ($v === null) { 11 $select->where($k); 12 } else { 13 $select->where($k, $v); 14 } 15 } 16 if ($this->_status_fieldname) { 17 $select->where($this->_status_fieldname . ' < ?', Mana_Const::STATUS_DEL); 18 } 19 return $select; 20 }
1 /** 2 * Update delete等增加where条件 3 * 4 * @param array $where 5 * @return string 6 */ 7 protected function addWhereToUdl($where) { 8 $sw = ''; 9 foreach ($where as $quote=>$val) { 10 if ($val === null) { 11 $sw .= ' ' . $quote . ' AND'; 12 } else { 13 $sw .= ' ' .$this->_db->quoteInto($quote, $val) . ' AND'; 14 } 15 } 16 if ($sw) { 17 $sw = trim($sw, 'AND'); 18 } 19 return $sw; 20 }
1 /** 2 * 3 * 获得满足条件的第一行数据 4 * @param array $mixWhere 5 * 设置连表情况 6 * 7 * @param array $options like 8 * array( 9 * tables=>array('key'=>array('tablename'=>'', 'on'=>'', 'fields'=>array())), 10 * 'where'=>array( 11 * 'tbl.field = ?'=>val, 12 * ) 13 * ) 14 */ 15 public function getRow($mixWhere = array(), $options = array()) { 16 $objSelect = $this->_db->select(); 17 $objSelect->from(array('s'=>$this->getTableName()),'*'); 18 $objSelect = $this->addWhereToSelect($objSelect, $mixWhere); 19 $objSelect = $this->addOptionsToSelect($objSelect, $options); 20 $this->_logger->log(__CLASS__ . '.'.__FUNCTION__ . '.'.$objSelect->__toString(), Zend_Log::INFO); 21 $objRow = $this->_db->fetchRow($objSelect,null,Zend_Db::FETCH_OBJ); 22 return $objRow; 23 }
1 /** 2 * 获得满足条件记录数量 3 * 4 * @param array $mixWhere 5 * 设置连表情况 6 * 7 * @param array $options like 8 * array( 9 * tables=>array('key'=>array('tablename'=>'', 'on'=>'', 'fields'=>array())), 10 * 'where'=>array( 11 * 'tbl.field = ?'=>val, 12 * ) 13 * ) 14 * @return int 15 */ 16 public function getCount($mixWhere = array(), $options = array()) { 17 $objSelect = $this->_db->select(); 18 $objSelect->from(array('s'=>$this->getTableName()),array('COUNT(1)')); 19 $objSelect = $this->addWhereToSelect($objSelect, $mixWhere); 20 $objSelect = $this->addOptionsToSelect($objSelect, $options); 21 $this->_logger->log(__CLASS__ . '.'.__FUNCTION__ . '.'.$objSelect->__toString(), Zend_Log::INFO); 22 $num = $this->_db->fetchOne($objSelect,null,Zend_Db::FETCH_OBJ); 23 return $num; 24 } 25
1 /** 2 * 3 * Enter description here ... 4 * @param Zend_Db_Select $select 5 * @param unknown_type $options 6 * 设置连表情况 7 * 8 * @param array $options like 9 * array( 10 * tables=>array('key'=>array('tablename'=>'', 'on'=>'', 'fields'=>array(), 'jointype'=>'join|joinleft|joinright')), 11 * 'where'=>array( 12 * 'tbl.field = ?'=>val, 13 * ) 14 * ) 15 * @return Zend_Db_Select 16 */ 17 protected function addOptionsToSelect($select, $options) { 18 if (empty($options)) { 19 return $select; 20 } 21 $tables = $options['tables']; 22 foreach ($tables as $key=>$tblJoinInfo) { 23 $tName = ''; 24 if (is_numeric($key)) { 25 $tName = $tblJoinInfo['tablename']; 26 } else { 27 $tName = array($key=>$tblJoinInfo['tablename']); 28 } 29 if ($tblJoinInfo['jointype'] == '' || $tblJoinInfo['jointype'] == 'join') { 30 $select->join($tName, $tblJoinInfo['on'], $tblJoinInfo['fields']); 31 } elseif ($tblJoinInfo['jointype'] == 'joinleft') { 32 $select->joinLeft($tName, $tblJoinInfo['on'], $tblJoinInfo['fields']); 33 } elseif ($tblJoinInfo['jointype'] == 'joinright') { 34 $select->joinRight($tName, $tblJoinInfo['on'], $tblJoinInfo['fields']); 35 } else { 36 throw new Exception('查询错误', 90001); 37 } 38 } 39 $wheres = $options['where']; 40 if ($wheres) { 41 $select = $this->addWhereToSelect($select, $wheres); 42 } 43 return $select; 44 }
1 /** 2 * 3 * 获得满足条件的所有行数据 4 * @param array $mixWhere 5 * 设置连表情况 6 * 7 * @param array $options like 8 * array( 9 * tables=>array('key'=>array('tablename'=>'', 'on'=>'', 'fields'=>array())), 10 * 'where'=>array( 11 * 'tbl.field = ?'=>val, 12 * ) 13 * ) 14 */ 15 public function getRows($mixWhere = array(), $options = array()) { 16 $objSelect = $this->_db->select(); 17 $objSelect->from(array('s'=>$this->getTableName()),'*'); 18 $objSelect = $this->addWhereToSelect($objSelect, $mixWhere); 19 $objSelect = $this->addOptionsToSelect($objSelect, $options); 20 $this->_logger->log(__CLASS__ . '.'.__FUNCTION__ . '.'.$objSelect->__toString(), Zend_Log::INFO); 21 $objRows = $this->_db->fetchAll($objSelect,null,Zend_Db::FETCH_OBJ); 22 return $objRows; 23 }
转载于:https://www.cnblogs.com/jishuixiansheng/archive/2012/06/11/2545628.html
Zend Framework数据库操作相关推荐
- Zend Framework数据库操作(1)
获得返回行数 1 $objSelect = $db->select()->from(array('u'=>'cmb_user'),array('COUNT(1)')) 2 -> ...
- robot framework数据库操作
1.连接数据库 2.数据库查询操作 3.断开数据库连接 4.对数据库进行读取,实现登录功能实例 转载于:https://www.cnblogs.com/xiaoyaowuming/p/5507622. ...
- php创建表设置编码,教您在Zend Framework里如何设置数据库编码以及怎样给数据表设定前缀!...
当我们在开发项目时..大家都会遇到一个问题就是:数据库的编码问题.当然我们不用Zend Framework做为项目开发的框架时..我们可以很快,很容易搞定这个小问题..但是当我们要使用Zend Fra ...
- Zend Framework教程-Zend_Db-数据库操作4-Zend_Db_Select
Zend_Db_Selec提供了构造SELECT查询语句的方法.通过Zend_Db_Select构造生成的查询语句是跨数据库的.下面介绍Zend_Db_Select提供的常见方法. class Zen ...
- Zend Framework教程-Zend_Db-数据库操作1-Zend_Db_Adapter
上一节,大概了解了Zend Framework完成数据库操作的常用类,下面一一简单介绍其用法. Zend_Db_Adapter是我们操作数据库的常用方式,以下是几个比较重要的功能使用说明: 1.建立数 ...
- zend framework mysql_Zend Framework连接Mysql数据库实例分析
这篇文章主要介绍了Zend Framework连接Mysql数据库的方法,以完整实例形式分析了Zend Framework连接MySQL数据库的具体步骤与相关实现技巧,需要的朋友可以参考下 本文实例讲 ...
- zend studio mysql 配置_php 在Zend Framework中配置数据库参数
[php]代码库我是用zend studio 7.2.1建立的zend framework project 也就是说我的框架是由zend stduio7.2.1 帮我建立了文件路径等信息的 下面讲讲如 ...
- php zend framework 教程,Zend Framework入门教程之Zend_Session会话操作详解
本文实例讲述了Zend Framework入门教程之Zend_Session会话操作.分享给大家供大家参考,具体如下: 会话命名空间 实现会话 代码: require_once "Zend/ ...
- Zend Framework中,执行自定义sql语句
Zend Framework中的Zend_Db_Table类可以很好的对数据表实现select,insert,delete等操作.但是有时候还是希望自己运行一些sql语句. ZF当然也是支持的. 一种 ...
最新文章
- Android状态栏
- 线程里面的yield();方法(让出线程)
- Java学习_day004:Scanner与分支结构
- 深度学习基础系列(八)| 偏差和方差
- Django中实现MySQL主从同步实现读写分离
- 【GIF动画+完整可运行源代码】C++实现 冒泡排序——十大经典排序算法之一
- 【Android开发—智能家居系列】(一):智能家居原理
- uniapp ajax数据库查询,uniapp小程序登录、数据请求方式
- BZOJ 2244 [SDOI2011]拦截导弹 (三维偏序CDQ+线段树)
- Bootstrap3 栅格系统之自定义mixin和变量
- 休息是为了更好的出发
- 云端之战:Oracle研发总裁Thomas Kurian 加盟 Google Cloud
- extract()和extact_first()的区别
- HTML与XML数据的结合小总结
- Ubuntu 12.04 LTS 键盘快捷键(转)
- pythondjango网页制作_python+django加载静态网页模板解析
- 【量化实战】跟随龙虎榜个股交易能获利吗?
- Unity3D-人物角色选择
- php to es7,只需五步 集成新版 Elasticsearch7.9 中文搜索 到你的 Laravel7 项目
- 科大讯飞麦克风阵列回声消除须知 V1.0