yii框架批量插入資料有兩種方法,第一種是迴圈多次插入和一次批量插入,第一種方法要注意插入資料中間有一次資料插入失敗要注意回滾事務
迴圈插入資料
第一種方法
$model = newuser();
try
$transaction->commit();
} catch(exception
$e)
第二種方法
$model = newuser();
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)
}
rowsrows = 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...