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 相关文章推荐
特详细的PHPMYADMIN简明安装教程
Aug 01 PHP
fleaphp crud操作之findByField函数的使用方法
Apr 23 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
Feb 01 PHP
解析php中const与define的应用区别
Jun 18 PHP
PHP的基本常识小结
Jul 05 PHP
async和DOM Script文件加载比较
Jul 20 PHP
Yii rules常用规则示例
Mar 15 PHP
关于php 高并发解决的一点思路
Apr 16 PHP
iis6手工创建网站后无法运行php脚本的解决方法
Jun 08 PHP
浅谈thinkphp5 instance 的简单实现
Jul 30 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
Sep 04 PHP
作为PHP程序员你要知道的另外一种日志
Jul 30 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
动态新闻发布的实现及其技巧
2006/10/09 PHP
php foreach 使用&amp;(与运算符)引用赋值要注意的问题
2010/02/16 PHP
Zend的MVC机制使用分析(二)
2013/05/02 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
2014/05/09 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
浅析Yii2中GridView常见操作
2016/04/22 PHP
详解PHP中cookie和session的区别及cookie和session用法小结
2016/06/12 PHP
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
js实现身份证号码验证的简单实例
2014/02/19 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
基于javascript实现九宫格大转盘效果
2020/05/28 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
2014/05/06 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
python用BeautifulSoup库简单爬虫实例分析
2018/07/30 Python
使用PyCharm创建Django项目及基本配置详解
2018/10/24 Python
Python 单元测试(unittest)的使用小结
2018/11/14 Python
Python获取时间戳代码实例
2019/09/24 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
简单了解Python字典copy与赋值的区别
2020/09/16 Python
送给他或她的礼物:FUN.com
2018/08/17 全球购物
海蓝之谜英国官网:La Mer英国
2020/01/15 全球购物
什么是三层交换,说说和路由的区别在那里
2014/09/01 面试题
客户表扬信范文
2014/01/10 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
垃圾桶标语
2014/06/24 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
如何签定毕业生就业协议书
2014/09/28 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
小兵张嘎电影观后感
2015/06/03 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server
如何将JavaScript将数组转为树形结构
2021/06/02 Javascript