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层的操作的更多相关文章

  1. DjangoMTV模型之model层——ORM操作数据库(基本增删改查)

    Django的数据库相关操作 对象关系映射(英语:(Object Relational Mapping,简称ORM),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效果上说 ...

  2. yii model层操作总结

    yii model层操作属性和方法总结. tableName – 设置Model所对应的表名,例如: public function tableName(){return 'gshop_order_e ...

  3. PHP MVC 中的MODEL层

    Model层,就是MVC模式中的数据处理层,用来进行数据和商业逻辑的装封 三.实现你的Mode层 Model层,就是MVC模式中的数据处理层,用来进行数据和商业逻辑的装封,进行他的设计的时候设计到三个 ...

  4. 读书笔记_MVC__关于通过js构建ORM,实现Model层

    最近一直在学习MVC构建富应用的WEB程序,自己一直对MVC的设计模式理解的不是十分透彻,终于在研读了github上Spine的源码之后,对构建Model层有了一点自己的理解. 本文仅为个人理解,如有 ...

  5. Object.defineProperties——MEAN开发后台的Model层

    Object.defineProperties是什么?有什么用? 这个问题比较听起来可能比较难以理解,确实我也是在项目中遇到的才会去想.以前看到<高级程序设计>的时候,有这么一种东西,定义 ...

  6. 深入理解--SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层都有什么作用

    SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层.存放我们的实体类,与数据库中的属性值基本保持一致 ...

  7. RapidIO 逻辑层IO操作与Message操作的原理和区别

    接上一篇 SRIO RapidIO (SRIO)协议介绍(一) 1     说明 查看协议手册时会发现,逻辑层的操作分成了IO和Message 2类动作,那么为什么要分成2类操作?从原理和应用角度来看 ...

  8. 2013/11/22工作随笔-缓存是放在Model层还是放在Controller层

    web网站的典型代码框架就是MVC架构,Model层负责数据获取,Controller层负责逻辑控制,View层则负责展示. 一般数据获取是去mysql中获取数据 但是这里有个问题,我们不会每次请求都 ...

  9. js 实现angylar.js view层和model层双绑定(改变view刷新 model,改变model自动刷新view)

    近段时间研究了下angular.js 觉得它内部实现的view和model层之间存在很微妙的关系,如下图 如上图说的,view的改变会update 数据层model, 数据层会update视图层vie ...

随机推荐

  1. JS提示Cannot read property 'replace' of undefined

    出现这个错误的原因一般是传的参数为null 在传参之前加个是否为null的判断就行了.

  2. python核心编程2 第五章 练习

    5-2 运算符(a) 写一个函数,计算并返回两个数的乘积(b) 写一段代码调用这个函数,并显示它的结果 def product(x, y): return x * y if __name__ == ' ...

  3. 海龟绘图turtle模块的使用

    在本章中,我们将编写简短的.简单的程序来创建漂亮的.复杂的视觉效果.为了做到这一点,我们可以使用海龟作图软件.在海龟作图中,我们可以编写指令让一个虚拟的(想象中的)海龟在屏幕上来回移动.这个海龟带着一 ...

  4. 传输控制协议(TCP)

    传输控制协议(TCP)[来自Unix网络编程(卷一)第2章] 1.TCP是一个面向连接.可靠性的传输协议: 2.TCP含有用于动态估算客户与服务器之间往返时间(RTT)的算法,以便它知道等待一个确认需 ...

  5. 从coding.net 克隆(git clone)项目代码到本地报无权限(403)错误 解决方案

    直接从coding.net (git clone)项目代码到本地时,会提示没有权限的错误,如下图: 解决方案:添加远程地址的时候带上用户名及密码即可解决,格式如下: git clone http:// ...

  6. aspx页面 按钮不响应回车键

    aspx页面在IE浏览器中,页面上的按钮默认都响应回车键,但有的时候我们的文本框可能需要响应回车键,这时我们就不想让按钮再响应回车键,这时我们只需要设置按钮的属性即可. 按钮分为两种,一种是<b ...

  7. 16,Flask-Migrate

    终于到了Flask-Migrate,之前在学习Flask-SQLAlchemy的时候,Flask支持 makemigration / migrate 吗? 答案在这里该诉你,如果你同时拥有两个三方组件 ...

  8. 15.2,redis发布订阅

    发布publish 订阅subscribe Redis 通过 PUBLISH . SUBSCRIBE 等命令实现了订阅与发布模式. 举例1: qq群的公告,单个发布者,多个收听者 发布/订阅 实验 发 ...

  9. C#中接口与抽象类的区别

    接口与抽象类是面试中经常会考到的点,容易混淆.首先了解下两者的概念: 一.抽象类:      抽象类是特殊的类,只是不能被实例化:除此以外,具有类的其他特性:重要的是抽象类可以包括抽象方法,这是普通类 ...

  10. NOIP 2018 总结

    NOIP 2018 总结 提高组: 应得分 \(100 + 100 + 40 + 100 + 50 + 44 = 434\). 考后期望得分 \(100 + 100 + 20 + 100 + 50 + ...