## 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] 该方法,在实际开发中,用得不多,大家重点应该放在单条记录的添加上
- 前言[随时更新]
- ThinkPHP 5数据库重构
- 开发环境
- 1.ThinkPHP5开发环境(Mac版)
- 2.ThinkPHP5开发环境(Win版)
- MySQL快速复习
- 1.数据库操作
- 2.数据表操作
- 1.创建数据表 (重点)
- 2.添加数据表记录
- 3.查询数据表(重点)
- 4.更新数据表
- 5.编辑数据表结构(重点)
- 6_复制数据表
- 7.删除数据和表
- 连接数据库
- 1.数据库配置文件database.php
- 2.Db类静态方法connect()
- 3.模块中的配置文件config.php
- MySQL原生查询
- 1.读操作query
- 2.写操作execute
- 选择数据表
- 1.table与setTable方法
- 2.name方法
- 3.db助手函数
- 4.alias方法
- 结果集查询
- 1.find方法
- 2.select方法
- 3.fetchSql方法
- 4.value方法
- 5.column方法
- 6.field方法
- 新增数据
- 1.insert_单条添加
- 2.insertAll_批量添加
- 3_db_助手函数添加
- 更新数据
- 1.update方法
- 2.setField更新字段
- 3_自增自减与延时更新
- 删除数据
- 1.delete方法
- 查询方法
- 1.getTableInfo方法
- 2.where方法
- 3.whereOr方法
- 4.混合查询(闭包实现)
- 表达式查询
- 1.表达式查询(重点)
- 2.exp通用查询
- 分组查询
- 1.group方法
- 2.having方法
- 排序分页查询
- 1.order方法
- 2.limit方法
- 3.page方法
- 聚合查询
- 时间查询
- 1.where方法
- 2.whereTime方法
- 高级查询
- 1.快捷查询
- 2.区间查询
- 3.批量查询
- 4.Query对象查询
- 5.混合查询
- 视图查询
- view方法
- 子查询
- 1.select方法
- 2.fetchSql方法
- 3.buildSql方法
- 4.闭包子查询
- 总结/参考
- 1.方法参数类型总结
- 2.查询/子查询/连接查询