yii批量資料插入

2022-07-13 08:00:16 字數 2306 閱讀 4426

yii框架批量插入資料有兩種方法,第一種是迴圈多次插入一次批量插入,第一種方法要注意插入資料中間有一次資料插入失敗要注意回滾事務

迴圈插入資料

第一種方法

$model = new

user();

try

$transaction->commit();

} catch(exception

$e)

第二種方法

$model = new

user();

try

$transaction->commit();

} catch(exception

$e)

批量插入資料

生成sql:insert into users (id, name) values (:id0, :name0),(:id1, :name1)

繫結引數:array(2)

<?php/**

* 批量插入

* @param string $table 表名

* @param array $array_columns 插入資料

* @return bool 失敗返回false,成功返回true */

function insertseveral($table, $array_columns

)

if ($value

instanceof cdbexpression)

else

}if (!$i

) else

$i++;

}return

$this->settext($sql)->execute($params);}

$rows = array

(

array('id' => 1, 'name' => 'john'),

array('id' => 2, 'name' => 'mark')

);echo insertseveral('users', $rows);

zend framework實現

/*

* * 批量插入

* @param array $rows 記錄陣列

* @return boolen 成功返回true,否則返回false

* @todo insert into t_promotion_plan_span (start_time,end_time,plan_id)

* values (:start_time0,:end_time0,:plan_id0), (:start_time1,:end_time1,:plan_id1)

*/public

function insertall($rows

)

//佔位符陣列和值陣列

foreach ($rows

as$row

)

$placs = "(".implode(',',$temp).")";

$temp=array

();

$i++;

}$sql = sprintf

( "insert into %s (%s) values %s",

'`'.$this->_name.'`',

implode(',',$names),

implode(',',$placs

) );

$db->query($sql,$values

);

return

true

; }

catch (exception

$e)

}

rows

rows = array(2)

[1]=>

array(2)

}sql

string(125) "insert into `cy_res_web_adpos_group` (`adpos_flag`,`adpos_id`) values (:adpos_flag_0,:adpos_id_0),(:adpos_flag_1,:adpos_id_1)"values

array(4)

yii2批量插入資料

yii2批量插入資料就是將資料整合在乙個陣列裡面,然後將這個陣列直接插入到資料庫,一次性插入多條資料.分兩種情況,第一種情況 全欄位插入,就是這個陣列中每條資料裡面的鍵都和資料庫裡面欄位名一致,且每個欄位都有.use yii helpers arrayhelper rows foreach mode...

yii2 batchInsert批量插入

foreach importdata as k data if empty gamename 把開服時間轉換成時間戳 if empty data 3 新系統匯入資料組合 data type 把型別組合到陣列裡頭 data time newdata data newdatastr implode da...

批量插入資料

drop procedure if exists pre 如果存在先刪除 delimiter 以delimiter來標記用 表示儲存過程結束 create procedure pre 建立pre 儲存方法 begin declare i int default 12 declare n int de...