ThinkPHP5数据库实例详解 /insertAll_批量添加

insertAll_批量添加

insertAll方法

1、功能:批量插入数据到数据表中

2、源码分析:

系统中有二个insertAll方法,名称相同,功能不同

1. /thinkphp/library/think/db/Buider.php 中的 insertAll方法

该insertAll方法负责生成插入多条记录的SQL语句

2. /thinkphp/library/think/db/Query.php中的 insertAll方法

该insertAll方法负责执行多条记录的插入操作
最终调用原生SQL:$this->execute($sql, $bind); 完成;


3、参数和返回值

序号 输入参数 返回值
1 $dataSet
二维数组表示
受影响记录条数
即插入数量

4、调用语法

Db::table( 'table_name' ) -> insertAll( $data ); // 批量添加

5、实例演示

插入3条新记录到tp5_staff表中

  • 插入前表中数据如下:

  • Index.php 代码如下:
'司马道长','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 员工信息表:

6、总结

该方法,在实际开发中,用得不多,大家重点应该放在单条记录的添加上