# ThinkPhP5 视频教程(九):数据库-事务、链式操作 * 查询构造器 除了原生查询外,5.0还提供了数据库查询构造器,可以更方便执行数据库操作,查询构造器基于PDO实现,对不同的数据库驱动都是统一的语法。 > 注意: ThinkPHP 5.0查询构造器使用 PDO参数绑定,以保护应用程序免于 SQL注入,因此传入的参数不需额外转义特殊字符。 ~~~ // 插入记录 Db::table('think_data') ->insert(['id' => 18, 'name' => 'thinkphp', 'status' => 1]); // 更新记录 Db::table('think_data') ->where('id', 18) ->update(['name' => "hello"]); // 查询数据 $list = Db::table('think_data') ->where('id', 18) ->select(); // 删除数据 Db::table('think_data') ->where('id', 18) ->delete(); ~~~ * 链式操作 使用链式操作可以完成复杂的数据库查询操作,例如: ~~~ // 查询十个满足条件的数据 并按照id倒序排列 $list = Db::name('data') ->where('status', 1) ->field('id,name') ->order('id', 'desc') ->limit(10) ->select(); dump($list); ~~~ 支持链式操作的查询方法包括: | 方法名 | 描述 | | --- | --- | | select | 查询数据集 | | find | 查询单个记录 | | insert | 插入记录 | | update | 更新记录 | | delete | 删除记录 | | value | 查询值 | | column | 查询列 | | chunk | 分块查询 | | count等 | 聚合查询 | * 事务支持 > 注意: 由于需要用到事务的功能,请先修改数据表的类型为InnoDB,而不是MyISAM。 对于事务的支持,最简单的方法就是使用transaction方法,只需要把需要执行的事务操作封装到闭包里面即可自动完成事务,例如: ~~~ Db::transaction(function () { Db::table('think_user') ->delete(1); Db::table('think_data') ->insert(['id' => 28, 'name' => 'thinkphp', 'status' => 1]); }); ~~~ ~~~[youku] XMjc0MDQxNzg0NA =856x523 ~~~ ### 视频播放密码: tpshop http://pan.baidu.com/s/1i55Clhz 高清视频下载地址(含demo) **TP5粉丝群: 364702379** [需要TPshop商城源码的可前往TPshop官网免费下载安装](http://www.tp-shop.cn)