YII2.0 批量插入
2018-01-31 12:22
381 查看
关键代码在try里,其他都乱七八糟的,不要看不要看
给自己码上,以防以后忘记。如果对大家有帮助,那自然是极好的!
public function OrderInsert($account_id, $supplier_id, $start_date, $end_date) { $orders = Order::find() -> where('is_purchase = :supplier_id and updated >= :start_date and updated < :end_date', [':supplier_id' = $supplier_id, ':start_date' = $start_date, ':end_date' = $end_date]) -> asArray() -> all(); // 查询 $data = []; // 存储需要插入数据表的数据 foreach ($orders as $k => $v) { $order = [ 'account_id' => $account_id, 'order_id' => $v['order_id'], 'order_price' => $v['order_price'], ]; array_push($data, $order); } $transaction = Yii::$app -> db -> beginTransaction(); // 事务处理 try { /**********************************第一种方法**********************************/ // Yii2.0内置批量插入方法 batchInsert(表名, 字段, 数据) // 数据的格式请看上面foreach后的$data,自个儿琢磨一下 $result = Yii::$app -> db -> createCommand() -> batchInsert(AccountDetail::tableName(), [ 'account_id', 'order_id', 'order_price', ], $data) -> execute(); if (!result) throw new \Exception(); /**********************************第二种方法**********************************/ // save() foreach ($data as $k => $v) { $model = new AccountDetail; $result = $model -> load($v, '') && $model -> save(); if (!result) throw new \Exception(); } $transaction -> commit(); } catch (\Exception $e) { $transaction -> rollback(); return false; } return true; }
给自己码上,以防以后忘记。如果对大家有帮助,那自然是极好的!
相关文章推荐
- Yii循环插入,批量插入方法
- Yii框架批量插入数据扩展类的简单实现方法
- yii2.0 批量删除
- yii 学习笔记值 如何批量像数据库插入数据
- Yii: 批量插入数据的扩展类简单实现
- YII1.1 批量插入数据
- YII框架批量插入数据的方法
- Yii1.1版本实现批量插入
- 深入理解Yii2.0 » Yii 模式 » 依赖注入和依赖注入容器
- Hibernate 批量插入 性能优化
- 如何把数据批量插入具有Identity列的表
- Yii2.0自定义分页方法
- Mybatis 转义字符,动态sql , 批量插入,批量更新
- 一条insert语句批量插入多条记录
- SQLServer中批量插入数据方式
- java中不同的ORM框架实现对数据库批量插入数据库的方式与技巧
- Yii 2.0 权威指南 (8) 配合数据库使用
- mybatis中dao传List参数foreach批量插入找不到参数
- MYSQL开发性能研究之批量插入数据的优化方法
- 内容都是XXXXX 如何把他们批量的插入表中