CI的model层的操作
1.需求
整理ci框架下model层的相关操作
2.代码
model的代码,放在application/model目录下,文件名为Coupon.php
<?php class Coupon extends CI_Model
{
function __construct()
{
parent::__construct();
$this->load->database();
}
/*
* @param array 一条记录数组
* @return bool 成功返回true
* */ public function insert($array)
{ $result = $this->db->insert('coupon',$array);
return $result;
}
/*
* 更新某个字段,$increase=true时,表示字段=字段+
* @return int 成功返回true,失败返回false
*
* */
public function update_field($field,$value,$wheresql,$increase=false)
{
if(count($wheresql)==0)
return 0; $sql = "update ci_coupon set ".$field."="; if($increase===true){
$sql.=$field.'+';
} $sql.=$this->db->escape($value);
$sql .=" where ";
foreach ($wheresql as $key => $val){
$sql.=$key.$this->db->escape($val);
}
$query=$this->db->query($sql);
return ($this->db->affected_rows()?true:false);
} /*
* 根据券id删除单条记录
* @param string 券id
* @return int 成功返回true,失败返回false
* */
public function delete($couponId)
{
$this->db->where('Quan_id', $couponId);
$this->db->delete('ci_coupon');
return ($this->db->affected_rows()?true:false);
} /*
* 判断记录是否存在
* @return bool 存在返回true,不存在返回false,
*/
public function exists($field,$value)
{
$this->db->where($field, $value);
$this->db->from('coupon');
return $this->db->count_all_results()==0?false:true;
} /*
* 根据一个条件获得数据
* @return array 有找到返回结果数组,否则返回空数组
*/
public function get_where($onewhere)
{
if(count($onewhere)==0)
{
return array();
}
$result = $this->get_list($onewhere);
return $result;
} /*
* 获得单条记录单字段
* @return string
*/
public function get_field($wheresql,$field='')
{
$result=$this->get_list($wheresql,$field,1,'');
if(count($result)==0)
return ''; return $result[0]->$field;
} /*
* 根据多个条件获得数据
*/
public function get_list($wheresql,$field='*',$limit=-1,$orderby='')
{
if (count($wheresql) == 0) {
return array();
} $sql = "SELECT " . $field . " FROM ci_coupon WHERE "; foreach ($wheresql as $key => $val ) {
if (isset($key) && (0 < strlen($key))) {
$sql .= $key;
} if (isset($val) && (0 < strlen($val))) {
$sql .= $this->db->escape($val);
}
} if ($orderby != "") {
$sql .= " order by " . $orderby;
} if ($limit != -1) {
$sql .= " limit " . $limit;
} $query = $this->db->query($sql);
return $query->result();
} /*
* 根据多个条件获得分页数据
*/
public function get_list_page($search,$field='*',$pagesize=200,$pageindex=1,$orderby='',&$count=0)
{
if ($pageindex <= 0) {
$pageindex = 1;
} if ($pagesize <= 0) {
$pagesize = 200;
} if (count($search) == 0) {
return array();
} $sql = "SELECT " . $field . " FROM ci_coupon WHERE ";
$wheresql = ""; foreach ($search as $key => $val ) {
if (isset($key) && (0 < strlen($key))) {
$wheresql .= $key;
} if (isset($val) && (0 < strlen($val))) {
$wheresql .= $this->db->escape($val);
} } $sql .= $wheresql; if ($orderby != "") {
$sql .= " order by " . $orderby;
} $sql .= " limit " . (($pageindex - 1) * $pagesize) . "," . $pagesize;
$query = $this->db->query($sql);
$result = $query->result();
$cquery = $this->db->query("SELECT count(0) as counts FROM ci_coupon WHERE " . $wheresql);
$cresult = $cquery->result();
$count = $cresult[0]->counts;
return $result;
} }
3.控制器调用实例
public function __construct()
{
parent::__construct();
$this->load->model("coupon");
}
$result = $this->coupon->get_list_page(array('Quan_endtime<='=>time()),'Quan_id');
CI的model层的操作的更多相关文章
- DjangoMTV模型之model层——ORM操作数据库(基本增删改查)
Django的数据库相关操作 对象关系映射(英语:(Object Relational Mapping,简称ORM),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效果上说 ...
- yii model层操作总结
yii model层操作属性和方法总结. tableName – 设置Model所对应的表名,例如: public function tableName(){return 'gshop_order_e ...
- PHP MVC 中的MODEL层
Model层,就是MVC模式中的数据处理层,用来进行数据和商业逻辑的装封 三.实现你的Mode层 Model层,就是MVC模式中的数据处理层,用来进行数据和商业逻辑的装封,进行他的设计的时候设计到三个 ...
- 读书笔记_MVC__关于通过js构建ORM,实现Model层
最近一直在学习MVC构建富应用的WEB程序,自己一直对MVC的设计模式理解的不是十分透彻,终于在研读了github上Spine的源码之后,对构建Model层有了一点自己的理解. 本文仅为个人理解,如有 ...
- Object.defineProperties——MEAN开发后台的Model层
Object.defineProperties是什么?有什么用? 这个问题比较听起来可能比较难以理解,确实我也是在项目中遇到的才会去想.以前看到<高级程序设计>的时候,有这么一种东西,定义 ...
- 深入理解--SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层都有什么作用
SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层.存放我们的实体类,与数据库中的属性值基本保持一致 ...
- RapidIO 逻辑层IO操作与Message操作的原理和区别
接上一篇 SRIO RapidIO (SRIO)协议介绍(一) 1 说明 查看协议手册时会发现,逻辑层的操作分成了IO和Message 2类动作,那么为什么要分成2类操作?从原理和应用角度来看 ...
- 2013/11/22工作随笔-缓存是放在Model层还是放在Controller层
web网站的典型代码框架就是MVC架构,Model层负责数据获取,Controller层负责逻辑控制,View层则负责展示. 一般数据获取是去mysql中获取数据 但是这里有个问题,我们不会每次请求都 ...
- js 实现angylar.js view层和model层双绑定(改变view刷新 model,改变model自动刷新view)
近段时间研究了下angular.js 觉得它内部实现的view和model层之间存在很微妙的关系,如下图 如上图说的,view的改变会update 数据层model, 数据层会update视图层vie ...
随机推荐
- Centos 7 下安装mysql
// 卸载原有maridb-lib库 [root@localhost ~]# rpm -qa | grep mariadb mariadb-libs-5.5.41-2.el7_0.x86_64 [ro ...
- angular常见问题总结
本文引自:https://www.cnblogs.com/zhoulujun/p/8881414.html 这篇是对angularJS的一些疑点回顾,是对目前angularJS开发的各种常见问题的整理 ...
- 微信小程序开发入门学习(1):石头剪刀布小游戏
从今天起开始捣鼓小程序了2018-12-17 10:02:15 跟着教程做了第一个入门实例有兴趣的朋友可以看看: 猜拳游戏布局 程序达到的效果 猜拳游戏的布局是纵向显示了三个组件:文本组件(tex ...
- px与em的区别,权重的优先级
px与em的区别,权重的优先级 PX特点:px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的.EM特点:1. em的值并不是固定的:2. em会继承父级元素的字体大小. 权重 ...
- Evevt Loop、任务队列、定时器等
上周五,一个朋友发给我一道面试题,代码如下: console.log(1); setTimeout(console.log(2), 0); Promise.resolve().then(res =&g ...
- 1,Python常用库之一:Numpy
Numpy支持大量的维度数组和矩阵运算,对数组运算提供了大量的数学函数库! Numpy比Python列表更具优势,其中一个优势便是速度.在对大型数组执行操作时,Numpy的速度比Python列表的速度 ...
- Androd安全——混淆技术完全解析
.前言 在上一篇Androd安全--反编译技术完全解析中介绍了反编译方面的知识,因此我们认识到为了安全我们需要对代码进行混淆. 混淆代码并不是让代码无法被反编译,而是将代码中的类.方法.变量等信息进行 ...
- vue计算属性和观察者
1. 计算属性 模板内的表达式非常便利,但在模板中放入太多的逻辑会让模板过重且难以维护,所有就有了计算属性 例子: //html代码 <div id="example"> ...
- 剑指Offer - 九度1368 - 二叉树中和为某一值的路径
剑指Offer - 九度1368 - 二叉树中和为某一值的路径2013-11-23 03:46 题目描述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结 ...
- 新生 & 语不惊人死不休 —— 《无限恐怖》读后有感
开篇声明,我博客中“小心情”这一系列,全都是日记啊随笔啊什么乱七八糟的.如果一不小心点进来了,不妨直接关掉.我自己曾经写过一段时间的日记,常常翻看,毫无疑问我的文笔是很差的,而且心情也是瞬息万变的.因 ...