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 相关文章推荐
基于mysql的bbs设计(三)
Oct 09 PHP
PHP 和 XML: 使用expat函数(三)
Oct 09 PHP
Smarty结合Ajax实现无刷新留言本实例
Jan 02 PHP
PHP 危险函数解释 分析
Apr 22 PHP
php foreach、while性能比较
Oct 15 PHP
PHP中将网页导出为Word文档的代码
May 25 PHP
PHP转换IP地址到真实地址的方法详解
Jun 09 PHP
PHP URL参数获取方式的四种例子
Feb 28 PHP
PHP实现定时执行任务的方法
Oct 05 PHP
PHP实现抓取HTTPS内容
Dec 01 PHP
php ajax异步读取rss文档数据
Mar 29 PHP
Netbeans 8.2将支持PHP7 更精彩
Jun 13 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中file_exists与is_file,is_dir的区别介绍
2012/09/12 PHP
php文件夹的创建与删除方法
2015/01/24 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
浅析PHP7的多进程及实例源码
2019/04/14 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
如何在PHP中生成随机数
2020/06/04 PHP
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
2012/07/31 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
JavaScript中的原型和继承详解(图文)
2014/07/18 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
jQuery插件扩展实例【添加回调函数】
2016/11/26 Javascript
canvas 绘制圆形时钟
2017/02/22 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
浅谈vue项目优化之页面的按需加载(vue+webpack)
2017/12/11 Javascript
vue拖拽组件使用方法详解
2018/12/01 Javascript
javascript中如何判断类型汇总
2019/05/14 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
这样回答继承可能面试官更满意
2019/12/10 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
python实现根据文件格式分类
2019/10/31 Python
python操作gitlab API过程解析
2019/12/27 Python
python tqdm库的使用
2020/11/30 Python
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
Annoushka英国官网:英国奢侈珠宝品牌
2018/10/20 全球购物
终端业务员岗位职责
2013/11/27 职场文书
保护环境建议书300字
2014/05/13 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
先进工作者推荐材料
2014/12/23 职场文书
工作表扬信
2015/01/17 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
公司董事任命书
2015/09/21 职场文书
详解Go语言中配置文件使用与日志配置
2022/06/01 Golang