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 adodb连接mssql解决乱码问题
Jun 12 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
Oct 08 PHP
php json与xml序列化/反序列化
Oct 28 PHP
PHP加Nginx实现动态裁剪图片方案
Mar 10 PHP
PHP中的插件机制原理和实例
Jul 08 PHP
php学习笔记之面向对象
Nov 08 PHP
php绘图之生成饼状图的方法
Jan 24 PHP
PHP数组去重比较快的实现方式
Jan 19 PHP
linux下php上传文件注意事项
Jun 11 PHP
PHP读MYSQL中文乱码的快速解决方法
Oct 01 PHP
Laravel 实现密码重置功能
Feb 23 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 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 strtotime函数详解
2009/12/18 PHP
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
php-msf源码详解
2017/12/25 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
Extjs入门之动态加载树代码
2010/04/09 Javascript
查找页面中所有类为test的结点的方法
2014/03/28 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
简介JavaScript中search()方法的使用
2015/06/06 Javascript
原生js实现tab选项卡切换
2020/03/23 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
2017/03/02 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
微信小程序实现图片上传功能实例(前端+PHP后端)
2018/01/10 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
2020/03/02 Javascript
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
解决python给列表里添加字典时被最后一个覆盖的问题
2019/01/21 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
tensorflow 获取checkpoint中的变量列表实例
2020/02/11 Python
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
2014/09/02 HTML / CSS
美国Max仓库:Max Warehouse
2020/05/31 全球购物
请问软件开发中的设计模式你会使用哪些
2015/05/13 面试题
建议书怎么写
2014/03/12 职场文书
运动会口号8字
2014/06/07 职场文书
农村门前三包责任书
2014/07/25 职场文书
2014年消防工作总结
2014/11/21 职场文书
python基础之文件处理知识总结
2021/05/23 Python
Apache SeaTunnel实现 非CDC数据抽取
2022/05/20 Servers