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入门速成教程
Mar 19 PHP
PHP合并两个数组的两种方式的异同
Sep 14 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
Jul 01 PHP
PHP调用wsdl文件类型的接口代码分享
Nov 19 PHP
php页面缓存方法小结
Jan 10 PHP
php使用MySQL保存session会话的方法
Jun 18 PHP
thinkphp实现图片上传功能
Jan 13 PHP
微信支付开发告警通知实例
Jul 12 PHP
使用ThinkPHP生成缩略图及显示
Apr 27 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 PHP
Laravel向公共模板赋值方法总结
Jun 25 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
Mar 18 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调用MySQL存储过程的方法集合(推荐)
2013/07/03 PHP
ThinkPHP文件缓存类代码分享
2015/04/22 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
2015/06/19 PHP
在WordPress的文章编辑器中设置默认内容的方法
2015/12/29 PHP
ThinkPHP中html:list标签用法分析
2016/01/09 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
laravel Model 执行事务的实现
2019/10/10 PHP
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
得到文本框选中的文字,动态插入文字的js代码
2007/03/07 Javascript
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
JS+CSS实现一个气泡提示框
2013/08/18 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
Egret引擎开发指南之创建项目
2014/09/03 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
JavaScript对数组进行随机重排的方法
2015/07/22 Javascript
js窗口关闭提示信息(兼容IE和firefox)
2015/10/23 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
最基础的vue.js双向绑定操作
2017/08/23 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
浅谈JS for循环中使用break和continue的区别
2020/07/21 Javascript
electron踩坑之remote of undefined的解决
2020/10/06 Javascript
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
python线程锁(thread)学习示例
2013/12/04 Python
python批量提取word内信息
2015/08/09 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
简单了解Django项目应用创建过程
2020/07/06 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
Python通过fnmatch模块实现文件名匹配
2020/09/30 Python
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
酒店前台接待岗位职责
2013/12/03 职场文书
贷款工资证明范本
2015/06/12 职场文书
妇产科护理心得体会
2016/01/22 职场文书
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python