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+MySql编写聊天室
Oct 09 PHP
Discuz 模板语句分析及知识技巧
Aug 21 PHP
PHP实现数组递归转义的方法
Aug 28 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
Nov 28 PHP
学习php设计模式 php实现抽象工厂模式
Dec 07 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
Mar 07 PHP
CI配置多数据库访问的方法
Mar 28 PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
Aug 01 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
Sep 01 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
laravel框架语言包拓展实现方法分析
Nov 22 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中的正则表达式函数介绍
2012/02/27 PHP
PHP学习笔记之php文件操作
2016/06/03 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
JS控制表格隔行变色
2006/06/26 Javascript
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
基于jquery的一个简单的脚本验证插件
2010/04/05 Javascript
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
js(JavaScript)实现TAB标签切换效果的简单实例
2014/02/26 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
jquery判断类型是不是number类型的实例代码
2016/10/07 Javascript
JS中Array数组学习总结
2017/01/18 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
利用forever和pm2部署node.js项目过程
2017/05/10 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
2017/09/05 jQuery
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
Vue递归实现树形菜单方法实例
2018/11/06 Javascript
JavaScript学习笔记之DOM操作实例分析
2019/01/08 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
python中的对象拷贝示例 python引用传递
2014/01/23 Python
Python实现统计英文单词个数及字符串分割代码
2015/05/28 Python
老生常谈python中的重载
2018/11/11 Python
python zip()函数使用方法解析
2019/10/31 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
2014年清明节网上祭英烈寄语
2014/04/09 职场文书
销售求职信范文
2014/05/26 职场文书
企业人事任命书
2014/06/05 职场文书
九年级历史教学反思
2016/02/19 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题
Python实现生活常识解答机器人
2021/06/28 Python
2022年四月新番
2022/03/15 日漫