程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> yii批量插入數據

yii批量插入數據

編輯:關於PHP編程

yii批量插入數據


現在有如下數據:

$user=array(
	0=>array('id'=>1,'name'=>'張三'),
	0=>array('id'=>2,'name'=>'李四'),
);

現在如果需將這兩條數據批量插入到數據表的話,一般大家都會想到用foreach,然後調用 insert 或者 save 方法插入數據。但實際操作卻是在foreach循環操作中,insert 只會插入第一條數據,save 卻只會插入第二條數據。這是為什麼呢?解釋如下:

插入一行到基於這個ActiveRecord的屬性表。如果表的主鍵是自動增量和插入前為null,將插入後的實際值填充。注意,驗證不執行此方法。你可以調用validate執行驗證。記錄成功插入到數據庫後,它的isNewRecord屬性將設置為false,和它的scenario屬性將設置為 update。

既然如此,那麼除了使用事務該如何實現數據的批量插入呢?經試驗總結了如下兩種方法:

第一種方法

$model=new User();
foreach($data as $attributes){
     $_model=clone $model;
     $_model->setAttributes($attributes);
     $_model->save();
}

第二種方法

$model=new User();
foreach($data as $attributes){
      $model->isNewRecord=true;
      $model->setAttributes($attributes);
      $model->save()&&$model->id=0;
}

您可能感興趣的文章

  • Yii framework框架之模塊開發分析
  • Yii框架Yiiapp()的理解
  • yii 數據庫添加,修改,刪除相關操作總結
  • yii框架如何配置默認controller與action
  • Yii中的數據庫事務的使用方法小結
  • Yii控制器動作參數綁定處理
  • yii數據庫查詢操作總結
  • yii框架緩存知識總結

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved