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. MySQL自增锁等待问题解决

    有网友再群里问:在做基准测试时候,批量插入数据时,有很多自增锁等待,我告诉他解决办法: 1.innodb_autoinc_lock_mode=2 2.innodb_autoextend_increme ...

  2. 交换机基础设置之vtp管理vlan设置

    vtp的设置有三种模式1:server模式,负责创建,删除vlan(服务器模式) 2:client模式,负责接收并转发来自server的信息(客户机模式) 3:transparent模式,只负责转发, ...

  3. python中正则表达式在中文字符串匹配时的坑

    之前一直有使用python 正则表达式来做中文字符串或者中英文数字混合的字符串的匹配,发现有不少情况下会匹配失灵或者结果混乱,并且在不同操作系统上匹配结果也不一致,查了很久都不知道是什么原因.今天终于 ...

  4. Git的基本命令介绍

    Git的安装 进入官网下载系统所需要的版本  官网地址:https://git-scm.com/downloads 点击下载按钮官方网站一般会根据操作系统的自动下载所需要的Git版本. 下载完成后,点 ...

  5. vbox+Vagrant 入门指南

    Vagrant 简介 Vagrant 是一个用来构建和管理虚拟机环境的工具.Vagrant 有着易于使用的工作流,并且专注于自动化,降低了开发者搭建环境的时间,提高了生产力.解决了"在我的机 ...

  6. INSERT⋯ACCEPTING_DUPLICATE_KEYS

    使用ACCEPTING DUPLICATE KEYS时,当插入时发现这条记录已存在时,那么这条记录将不会被insert,后续记录继续执行insert

  7. 6,Flask 中内置的 Session

    Flask中的Session非常的奇怪,他会将你的SessionID存放在客户端的Cookie中,使用起来也非常的奇怪 1. Flask 中 session 是需要 secret_key 的 from ...

  8. MyEclipse - 问题集 - build properties does not exist

    方案1 受MyEclipse生成的项目文件.project影响,检查其中是否含有“<nature>org.eclipse.pde.PluginNature</nature>”, ...

  9. phpStorm9.0 +xampp+chrome php调试环境配置!

    不多说,直接上step by step: 1.xampp配置 看看我的XAMPP版本: 修改配置文件,该打开打开,该加上加上,结果如下(当前需要重新启动apache,配置才会生效): [XDebug] ...

  10. 安装LoadRunner11报缺少vc2005_sp1_with_atl_fix_redist的错误

    找到安装程序自带的lrunner\Chs\prerequisites\vc2005_sp1_redist,双击运行vcredist_x86.exe,再重新安装LoadRunner即可成功. 参考资料: ...