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在XP下IIS和Apache2服务器上的安装
Sep 05 PHP
PHP 第一节 php简介
Apr 28 PHP
php生成百度sitemap站点地图类函数实例
Oct 17 PHP
php实现SAE上使用storage上传与下载文件的方法
Jun 29 PHP
PHP中iconv函数知识汇总
Jul 02 PHP
php cookie工作原理与实例详解
Jul 18 PHP
thinkPHP中volist标签用法示例
Dec 06 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
Mar 31 PHP
php基于数组函数实现关联表的编辑操作示例
Jul 04 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 PHP
php+iframe 实现上传文件功能示例
Mar 04 PHP
使用php的mail()函数实现发送邮件功能
Jun 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
一个PHP缓存类代码(附详细说明)
2011/06/09 PHP
php中文乱码怎么办如何让浏览器自动识别utf-8
2014/01/15 PHP
Ubuntu 16.04下安装PHP 7过程详解
2017/03/28 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
jquery 查找新建元素代码
2010/07/06 Javascript
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
javascript实现的元素拖动函数宿主为浏览器
2014/07/21 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
简单了解Backbone.js的Model模型以及View视图的源码
2016/02/14 Javascript
基于javascript实现精确到毫秒的倒计时限时抢购
2016/04/17 Javascript
js实现非常棒的弹出div
2016/10/06 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
2019/09/23 Javascript
vue vant Area组件使用详解
2019/12/09 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
2020/04/14 Javascript
Vue $emit()不能触发父组件方法的原因及解决
2020/07/28 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
[02:17]DOTA2亚洲邀请赛 RAVE战队出场宣传片
2015/02/07 DOTA
python二叉树遍历的实现方法
2013/11/21 Python
详解Python爬虫的基本写法
2016/01/08 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
python3字符串操作总结
2019/07/24 Python
Flask框架学习笔记之模板操作实例详解
2019/08/15 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
2019/11/26 Python
pytorch 实现删除tensor中的指定行列
2020/01/13 Python
PyCharm MySQL可视化Database配置过程图解
2020/06/09 Python
家用个人磨皮机:Trophy Skin
2017/03/30 全球购物
客户服务经理岗位职责
2014/01/29 职场文书
中专毕业生个人职业生涯规划
2014/02/19 职场文书
党员民主生活会材料
2014/12/15 职场文书
行政主管岗位职责
2015/02/03 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS