tp5(thinkPHP5)框架数据库Db增删改查常见操作总结


Posted in PHP onJanuary 10, 2019

本文实例讲述了tp5(thinkPHP5)框架数据库Db增删改查常见操作。分享给大家供大家参考,具体如下:

添加数据insert

$data = [
  'name_cn' => '张三',
  'name_en' => 'jack',
];
$res = Db::name('style')->insert($data);

添加数据。

INSERT INTO `tf_style` (`name_cn` , `name_en`) VALUES ('张三' , 'jack')

tp5还可以通过insertAll插入多条数据。

$data = [
  'name_cn' => '张三',
  'name_en' => 'jack',
];
$res = Db::name('style')->insertGetId($data);

获取插入的id。

修改数据update

更新数据,使用update方法。

$res = Db::name('style')->where('id',4)->update(['name_cn'=>'李四']);
UPDATE `tf_style` SET `name_cn` = '李四' WHERE `id` = 4;

返回结果为影响的行数。

$where = new Where();
$where['id'] = ['>',2];
$res = Db::name('style')->where($where)->update(['name_cn'=>'李四']);

通过$where对象进行条件操作。

$where[] = ['id','>',2];
$res = Db::name('style')->where($where)->update(['name_cn'=>'王五']);

也是可以的。

主键可以直接写入data数据中。

$res = Db::name('style')->update(['name_cn'=>'王五','id'=>2]);

结果如下:

UPDATE `tf_style` SET `name_cn` = '王五' WHERE `id` = 2;

这种方式只可以修改一条数据。

只修改一个字段,使用setField方法。

$res = Db::name('style')->where('id',2)->setField(['name_cn'=>'刘备']);
$res = Db::name('style')->where('id',2)->setField(['name_cn'=>'刘备','name_en'=>'LiuBei']);
UPDATE `tf_style` SET `name_cn` = '刘备' , `name_en` = 'LiuBei' WHERE `id` = 2

效果与update差不多。

删除数据delete

删除一条。

$res = Db::name('style')->where('id',2)->delete();
$res = Db::name('style')->delete('2');

删除多条。

$res = Db::name('style')->delete('2,3');

id写在字符串里面。

$res = Db::name('style')->delete([2,3,4]);

或者通过id数组。

查询数据select

$data = Db::query('select * from tf_action');
$data = Db::query('select * from tf_action where id > ? and id < ?',[1,10]);
$sql = Db::getLastSql();

查询用query。

删除,增加,修改,用execute。

$data = Db::table('tf_action')->select();

这里用的是表全名。

$data = Db::name('action')->select();

这里用的是去掉前缀的表名。

$data = db('action')->select();

助手函数,效果与Db::name差不多。

但是又不完全相同。

$data = db('action')->where('id','>',1)->where('id','<',9)->select();

多条件查询。

$data = db('action')->where('id','>',20)->whereOr('id','<',9)->select();

或查询。

如果中间的条件是空,就是=的意思。

$where = new Where();
$where['name'] = ['like','%户%'];
$where['id'] = ['>',1];
$data = db('action')->where($where)->select();
$where[] = ['name','like','%户%'];
$where[] = ['id','>',1];
$data = db('action')->where($where)->select();

组合查询。

$where = new Where();
$where['name'] = ['like','%户%'];
$where['id'] = ['>',1];
$data = db('action')->where($where)->limit(2,2)->order('id desc')->select();

分页排序。

$where = new Where();
$where['name'] = ['like','%户%'];
$where['id'] = ['>',1];
$data = db('action')->where($where)->limit(2,2)->order('id desc')->field('id,name')->select();

查询指定字段。

$where = new Where();
$where['name'] = ['like','%户%'];
$where['id'] = ['>',1];
$data = db('action')->where($where)->limit(2,2)->order('id desc')->field('id aid,name')->select();

起别名。

$data = db('action')->where($where)->field('count(*) as count')->find();

使用系统函数。

$data = db('action')->where("name like '%户%' AND id > 1")->select();

直接写字符串也是OK的。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
Jul 21 PHP
一些被忽视的PHP函数(简单整理)
Apr 30 PHP
使用phpQuery采集网页的方法
Nov 13 PHP
PHP实现文件下载断点续传详解
Oct 15 PHP
php解析http获取的json字符串变量总是空白null
Mar 02 PHP
php动态绑定变量的用法
Jun 16 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
Thinkphp5.0自动生成模块及目录的方法详解
Apr 17 PHP
Yii2使用表单上传文件的实例代码
Aug 03 PHP
php通过header发送自定义数据方法
Jan 18 PHP
PHP实现多图上传和单图上传功能
May 17 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
Oct 03 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
Jan 10 #PHP
tp5框架使用composer实现日志记录功能示例
Jan 10 #PHP
PHP微信支付结果通知与回调策略分析
Jan 10 #PHP
php如何利用pecl安装mongodb扩展详解
Jan 09 #PHP
PHP如何通过表单直接提交大文件详解
Jan 08 #PHP
Laravel 队列使用的实现
Jan 08 #PHP
laravel 框架配置404等异常页面
Jan 07 #PHP
You might like
咖啡语言
2021/03/03 咖啡文化
php str_replace的替换漏洞
2008/03/15 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
JavaScript使用技巧精萃[代码非常实用]
2008/11/21 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
Javascript/Jquery——简单定时器的多种实现方法
2013/07/03 Javascript
JS 页面计时器示例代码
2013/10/28 Javascript
纯JavaScript实现获取onclick、onchange等事件的值
2014/12/29 Javascript
无刷新上传文件并返回自定义值
2015/06/11 Javascript
jquery实现横向图片轮播特效代码分享
2015/11/19 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
JS hashMap实例详解
2016/05/26 Javascript
原生JS实现图片懒加载(lazyload)实例
2017/06/13 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
详细分析单线程JS执行问题
2017/11/22 Javascript
浅谈手写node可读流之流动模式
2018/06/01 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
[02:16]DOTA2超级联赛专访Burning 逆袭需要抓住机会
2013/06/24 DOTA
[53:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第三场 6.2
2018/06/03 DOTA
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
Python中Django框架下的staticfiles使用简介
2015/05/30 Python
python学习教程之使用py2exe打包
2017/09/24 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
python 日志增量抓取实现方法
2018/04/28 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
烹饪自我鉴定
2014/03/01 职场文书
信息学院毕业生自荐信范文
2014/03/04 职场文书
2015年班级工作总结范文
2015/04/03 职场文书
物业保洁员管理制度
2015/08/05 职场文书
创业计划书介绍
2019/04/24 职场文书