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数据库操作相关推荐

  1. Zend Framework数据库操作(1)

    获得返回行数 1 $objSelect = $db->select()->from(array('u'=>'cmb_user'),array('COUNT(1)')) 2 -> ...

  2. robot framework数据库操作

    1.连接数据库 2.数据库查询操作 3.断开数据库连接 4.对数据库进行读取,实现登录功能实例 转载于:https://www.cnblogs.com/xiaoyaowuming/p/5507622. ...

  3. php创建表设置编码,教您在Zend Framework里如何设置数据库编码以及怎样给数据表设定前缀!...

    当我们在开发项目时..大家都会遇到一个问题就是:数据库的编码问题.当然我们不用Zend Framework做为项目开发的框架时..我们可以很快,很容易搞定这个小问题..但是当我们要使用Zend Fra ...

  4. Zend Framework教程-Zend_Db-数据库操作4-Zend_Db_Select

    Zend_Db_Selec提供了构造SELECT查询语句的方法.通过Zend_Db_Select构造生成的查询语句是跨数据库的.下面介绍Zend_Db_Select提供的常见方法. class Zen ...

  5. Zend Framework教程-Zend_Db-数据库操作1-Zend_Db_Adapter

    上一节,大概了解了Zend Framework完成数据库操作的常用类,下面一一简单介绍其用法. Zend_Db_Adapter是我们操作数据库的常用方式,以下是几个比较重要的功能使用说明: 1.建立数 ...

  6. zend framework mysql_Zend Framework连接Mysql数据库实例分析

    这篇文章主要介绍了Zend Framework连接Mysql数据库的方法,以完整实例形式分析了Zend Framework连接MySQL数据库的具体步骤与相关实现技巧,需要的朋友可以参考下 本文实例讲 ...

  7. zend studio mysql 配置_php 在Zend Framework中配置数据库参数

    [php]代码库我是用zend studio 7.2.1建立的zend framework project 也就是说我的框架是由zend stduio7.2.1 帮我建立了文件路径等信息的 下面讲讲如 ...

  8. php zend framework 教程,Zend Framework入门教程之Zend_Session会话操作详解

    本文实例讲述了Zend Framework入门教程之Zend_Session会话操作.分享给大家供大家参考,具体如下: 会话命名空间 实现会话 代码: require_once "Zend/ ...

  9. Zend Framework中,执行自定义sql语句

    Zend Framework中的Zend_Db_Table类可以很好的对数据表实现select,insert,delete等操作.但是有时候还是希望自己运行一些sql语句. ZF当然也是支持的. 一种 ...

最新文章

  1. Android状态栏
  2. 线程里面的yield();方法(让出线程)
  3. Java学习_day004:Scanner与分支结构
  4. 深度学习基础系列(八)| 偏差和方差
  5. Django中实现MySQL主从同步实现读写分离
  6. 【GIF动画+完整可运行源代码】C++实现 冒泡排序——十大经典排序算法之一
  7. 【Android开发—智能家居系列】(一):智能家居原理
  8. uniapp ajax数据库查询,uniapp小程序登录、数据请求方式
  9. BZOJ 2244 [SDOI2011]拦截导弹 (三维偏序CDQ+线段树)
  10. Bootstrap3 栅格系统之自定义mixin和变量
  11. 休息是为了更好的出发
  12. 云端之战:Oracle研发总裁Thomas Kurian 加盟 Google Cloud
  13. extract()和extact_first()的区别
  14. HTML与XML数据的结合小总结
  15. Ubuntu 12.04 LTS 键盘快捷键(转)
  16. pythondjango网页制作_python+django加载静态网页模板解析
  17. 【量化实战】跟随龙虎榜个股交易能获利吗?
  18. Unity3D-人物角色选择
  19. php to es7,只需五步 集成新版 Elasticsearch7.9 中文搜索 到你的 Laravel7 项目
  20. 科大讯飞麦克风阵列回声消除须知 V1.0

热门文章

  1. 内存管理模拟程序c语言,C语言 内存管理详解
  2. 隐藏画质代码_如何让千元机高画质满帧吃鸡?最全教程奉上!
  3. 深入理解Semaphore
  4. 从源码分析DEARGUI之菜单
  5. [CF843D]Dynamic Shortest Path
  6. 在直播问题上,智能电视们不应该沉默
  7. Bimsight视图及导航控制
  8. 三招教你如何判断ERP软件是否适用
  9. 不删除文件,清空文件内容命令
  10. BS-XX-026 基于SpringBoot 实现个人理财系统