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 相关文章推荐
实现dedecms全站URL静态化改造的代码
Mar 29 PHP
PHP开发中常用的三个表单验证函数使用小结
Mar 03 PHP
PHP下打开URL地址的几种方法小结
May 16 PHP
五款常用mysql slow log分析工具的比较分析
May 22 PHP
php 判断是否是中文/英文/数字示例代码
Sep 30 PHP
php中print(),print_r(),echo()的区别详解
Dec 01 PHP
php截取html字符串及自动补全html标签的方法
Jan 15 PHP
php中Snoopy类用法实例
Jun 19 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
May 16 PHP
分析PHP中单双引号的误区和双引号小隐患
Jul 19 PHP
PHP实现支持加盐的图片加密解密
Sep 09 PHP
Laravel如何使用Redis共享Session
Feb 23 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
基于OpenCV的PHP图像人脸识别技术
2009/10/11 PHP
基于empty函数的输出详解
2013/06/17 PHP
Laravel框架表单验证详解
2014/09/04 PHP
jquery.cvtooltip.js 基于jquery的气泡提示插件
2010/11/19 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
Bootstrap每天必学之响应式导航、轮播图
2016/04/25 Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
2016/07/07 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
vue: WebStorm设置快速编译运行的方法
2018/10/18 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
详解Vue底部导航栏组件
2019/05/02 Javascript
arctext.js实现文字平滑弯曲弧形效果的插件
2019/05/13 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
vue过滤器实现日期格式化的案例分析
2020/07/02 Javascript
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
总结Python编程中函数的使用要点
2016/03/20 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
2016/03/15 HTML / CSS
三个Unix的命令面试题
2015/04/12 面试题
求职推荐信范文
2013/12/01 职场文书
火车来了教学反思
2014/02/11 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
整改落实自查报告
2014/11/05 职场文书
晚会开幕词
2015/01/28 职场文书
党小组推荐意见
2015/06/02 职场文书
2016感恩父亲节主题广播稿
2015/12/18 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL