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 ...
随机推荐
- Eloquent: 修改器
感觉好长时间没写东西了,一方面主要是自己的角色发生了变化,每天要面对各种各样的事情和突发事件,不能再有一个完整的长时间让自己静下来写代码,或者写文章. 另一方面现在公司技术栈不再停留在只有 Larav ...
- Git的基本命令介绍
Git的安装 进入官网下载系统所需要的版本 官网地址:https://git-scm.com/downloads 点击下载按钮官方网站一般会根据操作系统的自动下载所需要的Git版本. 下载完成后,点 ...
- day1_作业2(三级菜单)--改进版
#!/usr/local/bin/python3 # -*- coding:utf-8 -*- province={ '江苏省':{ '南京市':['秦淮区','玄武区','栖霞区'], '苏州市': ...
- POJ:3190-Stall Reservations
传送门:http://poj.org/problem?id=3190 Stall Reservations Time Limit: 1000MS Memory Limit: 65536K Total ...
- [BZOJ1045] [HAOI2008] 糖果传递 (中位数)
Description 题目链接 Solution 这题跟数列的中位数有关, 具体证明见刘汝佳的蓝皮书里 Code #include <cstdio> #include <algor ...
- JQ实现下拉加载更多
var x=0; var isloading=0; function getUsersLimited(data) { list = list.concat(data); buildList(list) ...
- Vsftpd服务 和 TFTP协议
FTP 文件传输协议 (File Transfer Protocol) FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20.21号端口,其中端口20(数据端口)用于进行数据 ...
- PHP.32-TP框架商城应用实例-后台8-商品相册-添加
商品相册[是商品的其他相片] 添加相册需求: 每张图片生成三张缩略图{50*50.350*350.650*650} 1.建表p39_goods_pic{id,pic,sm_pic,mid_pic,bi ...
- 洛谷P1331 海战
海战 题目链接 这还是一道联通块的题,只是需要判断是否存在以下四种情况: o. .o oo oo oo oo o. .o 如果存在就是Bad placement. 要注意标记以下,不然会出现多次输出B ...
- 接口&抽象类&继承&父类和子类
1.接口是什么? 接口可以理解为一个特殊的抽象类,是由全局常量和公共抽象方法组成的. 所以,如果,一个抽象类的方法都是抽象的,那么就可以通过接口的形式来表示. class 用于定义类 interfac ...