## insertAll方法 #### 1、功能:批量插入数据到数据表中 #### 2、源码分析: >[info] 系统中有二个insertAll方法,名称相同,功能不同 ##### 1. /thinkphp/library/think/db/Buider.php 中的 insertAll方法 ![](https://box.kancloud.cn/b782ab83172fe4d50d3daaa7bf27adeb_1334x923.png) >[success] 该insertAll方法负责生成插入多条记录的SQL语句 ##### 2. /thinkphp/library/think/db/Query.php中的 insertAll方法 ![](https://box.kancloud.cn/efb1a09bb8a017a3eaedb5ba00e044eb_1334x923.png) >[success] 该insertAll方法负责执行多条记录的插入操作 最终调用原生SQL:$this->execute($sql, $bind); 完成; * * * * * #### 3、参数和返回值 | 序号 | 输入参数 | 返回值 | | --- | --- | --- | | 1 | $dataSet<br/>二维数组表示 | 受影响记录条数<br/>即插入数量 | #### 4、调用语法 ~~~ Db::table( 'table_name' ) -> insertAll( $data ); // 批量添加 ~~~ #### 5、实例演示 #### 插入3条新记录到tp5_staff表中 * 插入前表中数据如下: ![](https://box.kancloud.cn/5fe9452fe213ecd3c994293757294ac3_476x310.png) * Index.php 代码如下: ~~~ <?php namespace app\index\controller; use think\Db; class Index { public function index(){ // 1.创建员工信息数组 $data = []; $data[] =['name'=>'司马道长','sex'=>1,'age'=>39,'salary'=>3890]; $data[] =['name'=>'段王爷','sex'=>0,'age'=>58,'salary'=>9560]; $data[] =['name'=>'鲁大师','sex'=>0,'age'=>88,'salary'=>7280]; // 2.将数据集插入到表中 $result = Db::table('tp5_staff') //指定tp5_staff表 ->insertAll($data); // 批量添加 // 3.查看返回结果 int(3) dump($result); } } ~~~ * 插入成功,返回插入的记录条数: ~~~ int(3) //表示受影响记录为3条,即成功插入3条记录到数据表tp5_staff 中 ~~~ * 再次查看 tp5_staff 员工信息表: ![](https://box.kancloud.cn/58793c293e3b73650b1b0366f5702740_602x393.png) #### 6、总结 >[danger] 该方法,在实际开发中,用得不多,大家重点应该放在单条记录的添加上