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. linux下csv导出文件中文乱码问题

    近日在服务器端通过导出csv文件,将数据从linux服务器端保存到windows桌面端,以便用户可以通过excel打开使用数据. 但是在使用excel打开csv文件时,出现了中文乱码的情况,但是使用记 ...

  2. JavaScript - 库 jQuery

    测试 JavaScript 框架库 - jQuery 引用JQuery 如需测试JavaScript库,您需要在网页中引用它. 为了引用某个库,请使用<script>标签,其src属性设置 ...

  3. ERROR 1005 (HY000): Can't create table 'students.#sql-d9

    今天在创建外键的时候出现以下错误        ERROR 1005 (HY000): Can't create table 'students.#sql-d99_3' (errno: 150) 格式 ...

  4. Mybatis中updateByPrimaryKeySelective和updateByPrimaryKey区别

    int updateByPrimaryKeySelective(TbItem record); int updateByPrimaryKey(TbItem record); 上面的是逆转工程生成的Ma ...

  5. ASP.NET 使用 MySQL

    基本是通用的 C#与MySQL的交互, 先添加MySQL.Data.dll(位于MySQL安装目录下的Connector NET 8.0\Assemblies${version}目录下)引用, 之后代 ...

  6. PHP代码审计6-实战漏洞挖掘-xdcms用户注册页面漏洞

    xdcms 源码:xdcms v2.0.8 1.配置 [一直下一步(仅为测试)] #数据库账号root,密码为空:管理员账号/密码:xdcms/xdcms #登录后台 2.查看后台登录页面的配置项[x ...

  7. 关于android 5.0报错:dlopen failed: couldn't map ... Permission denied

    问题描述: 我的应用当中集成了一个安全相关的sdk,而这个sdk中使用的so是加过壳的. 它加载native so的方式是:Java System.loadLibrary --> native ...

  8. HA集群中namenode连接不上journalnode,导致namenode启动不了

    查看日志发现一下的错误: 2018-10-08 15:29:26,373 FATAL org.apache.hadoop.hdfs.server.namenode.FSEditLog: Error: ...

  9. MD5--3D模型

    在学习Away3D的过程中,接触到MD5模型和MD5动画这样两个词.之前对MD5的认识就是一种加密技术,怎么它又和动画扯上关系了呢. 一阵谷歌之后,终于在这个地方发现了关于3D方面的MD5介绍了:ht ...

  10. 《Cracking the Coding Interview》——第17章:普通题——题目4

    2014-04-28 22:32 题目:不用if语句或者比较运算符的情况下,实现max函数,返回两个数中更大的一个. 解法:每当碰见这种无聊的“不用XXX,给我XXX”型的题目,我都默认处理的是int ...