PHP ThinkPHP 非常好用的增删改查方法
获取列表数据(多条)
/**
* 获取页面列表
* @param $params //查询条件 例:['id'=>['in','1,2']] ['status'=>1]
* @param array $orderby //排序 例:['id'=>'desc']
* @param array $limit //查询页数 例:[0,10]
* @param bool $is_total 是否需要总数
* @param string $fields 是否需要总数 例:'name'
* @return array
*/
public function resultsAction($params = [],$orderby = [],$limit = [],$is_total = true,$fields = ''){
if(empty($orderby)){
$orderby = array('id'=>'desc');
} //列表模型
$results = $this
->where($params)
->order($orderby)
->field($fields); //查询数量
if(!empty($limit)){
list($offset, $limit) = [$limit[0],$limit[1]]; $results = $results->limit($offset,$limit);
} //查询
$results = $results->select(); //把数据转为数组
$results = collection($results)->toArray(); //总数
if (!$is_total){
return $results;
} //查询总数
$total = $this
->where($params)
->count(); return $result = array("total" => $total, "rows" => $results);
}
获取单条数据
/**
* 获取单数据
* @param array $params
* @param string $fields
*/
public function resultAction($params = [],$fields = ''){
$result = $this
->field($fields)
->where($params)
->find(); if(!empty($result)){
$result=$result->toArray();
}
return $result;
}
新增或修改数据
/**
* 新增或修改数据
* @param array $params 更新内容
* @param array $args 更新条件 存在值为更新
*/
public function saveAction($params = [],$args = []){
if(empty($args)){
$save = $this
->allowField(true)
->save($params);
}
else{
$save = $this
->allowField(true)
->update($params,$args);
}
return $save;
}
删除数据
/**
*删除
* @param array $params //查询条件 例:['id'=>['in','1,2']] ['status'=>1]
*/
public function delAction($params = []){
$del = $this
->where($params)
->delete();
return $del;
}
插入多条数据
/**
* 新增
* @param array $params 更新内容
*/
public function saveAllAction($params = []){
$save = $this
->allowField(true)
->saveAll($params); return $save;
}
PHP ThinkPHP 非常好用的增删改查方法的更多相关文章
- Spring Data CrudRepository增删改查方法(八)
CrudRepository 的主要方法 long count(); boolean exists(Integer arg0); <S extends StudentPO> S sav ...
- Django REST framework 五种增删改查方法
Django-DRF-视图的演变 版本一(基于类视图APIView类) views.py: APIView是继承的Django View视图的. 1 from .serializers impor ...
- 通用mapper的增删改查方法 留存 备忘
Mybatis通用Mapper介绍与使用 前言 使用Mybatis的开发者,大多数都会遇到一个问题,就是要写大量的SQL在xml文件中,除了特殊的业务逻辑SQL之外,还有大量结构类似的增删改查SQ ...
- ThinkPHP实现对数据库的增删改查
好久都没有更新博客了,之前老师布置的任务总算是现在可以说告一段落了,今天趁老师还没提出其他要求来更新一篇博客. 今天我想记录的是我之前做项目,自己所理解的ThinkPHP对数据库的增删改查. 首先要说 ...
- 关于单链表的增删改查方法的递归实现(JAVA语言实现)
因为在学习数据结构,准备把java的集合框架底层源码,好好的过一遍,所以先按照自己的想法把单链表的类给写出来了; 写该类的目的: 1.练习递归 2.为深入理解java集合框架底层源码打好基础 学习的视 ...
- classLIST元素增删改查方法
window.onload=function () { var oDiv=document.getElementsByTagName('div')[0]; var oInP=document.getE ...
- js 增删改查方法
push() 向数组的末尾添加一个或多个元素 pop() 删除数组内部并返回数组的最后一个元素 shift() 把数组内部的第一个元素从其中删除,并返回第一个元素的值 unshift() 向数组外部的 ...
- PHP历程(封装的增删改查方法)
db.class.php 主要方法 <?php /** * 数据库配置信息 */ define('DB_HOST','127.0.0.1'); //服务器 define('DB_USER', ...
- Hibernate常用增删改查方法
/** * @param obj * @return * 添加数据 */ public Serializable saveObject(Object obj){ return this.getHibe ...
随机推荐
- Java虚拟机堆和栈详细解析,以后面试再也不怕问jvm了!
堆 Java堆是和Java应用程序关系最密切的内存空间,几乎所有的对象都放在其中,并且Java堆完全是自动化管理,通过垃圾收集机制,垃圾对象会自动清理,不需自己去释放. 根据垃圾回收机制的不同,Jav ...
- 使用for语句输出1-100之间的所有偶数
使用for语句输出1-100之间的所有偶数 for i in range(1,101): if i%2==0: print(i) 使用while语句输出1-100之间能够被3整除的数字 j=1 whi ...
- Test 1022
T1 AERODROM (二分答案 TimeLimit: 1000MS Memory Limit: 32768KB \(N\)个登机口,办理登机业务,第\(i\)个窗口的单位办理时间为\(T_i\), ...
- Python Weekly 422
新闻 Python 采用12个月作为发布周期 链接: https://mail.python.org/archives/list/python-dev@python.org/thread/KE7OS4 ...
- var和let部分浅析
ES6中新增了let命令,用于声明变量,但所声明的变量只在let命令的代码块内有效. 举个例子: var a = []; for(var i=0;i<10;i++){ a[i] = functi ...
- win10: 搭建FTP服务器
新建用户,可以设置多个用户,给予不同的权限 ftp创建完成后,新用户创建完成后,我们回到计算机管理-Internet Information Services(IIS)管理器来管理我们的FTP站点,点 ...
- Eclipse——关联源代码
Eclipse——关联源代码 摘要:本文主要说明了如何在Eclipse里关联源代码. 下载源码包 首先去想要关联的jar包的官网下载对应jar包的源代码,拿Tomcat的类库举例,先去官网下载源码包: ...
- Java网络爬虫 HttpClient
简介 : HttpClient是Apache Jakarta Common下的子项目,用于提供高效的,功能丰富的支持HTTP协议的客户编程工具包,其主要功能如下: 实现了所有HTTP的方法 : GET ...
- RabbitMQ异常注意 reply-code=404, reply-text=NOT_FOUND - no exchange 'topic' in vhost '/', class-id=50, method-id=
第一次,一定要先启动Provider再启动Consumer!!! rabbitmq为初始状态没有队列信息,然后我又没有启动consumer,所以导致provider找不到queue和exchange. ...
- 【Cef编译】 CefSharp编译失败,检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”
编译CefSharp生成后一个libcef_dll_wrapper.lib时,供CefSharp使用.结果CefSharp编译的时候报错.遇到以下异常: libcef_dll_wrapper.lib( ...