PHP框架 Laravel Eloquent ORM 批量插入數(shù)據(jù)是通過(guò)傳入數(shù)組實(shí)現(xiàn)的。
主要從事網(wǎng)頁(yè)設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、響應(yīng)式網(wǎng)站設(shè)計(jì)、程序開(kāi)發(fā)、微網(wǎng)站、微信小程序等,憑借多年來(lái)在互聯(lián)網(wǎng)的打拼,我們?cè)诨ヂ?lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)絡(luò)營(yíng)銷(xiāo)經(jīng)驗(yàn),集策劃、開(kāi)發(fā)、設(shè)計(jì)、營(yíng)銷(xiāo)、管理等多方位專(zhuān)業(yè)化運(yùn)作于一體,具備承接不同規(guī)模與類(lèi)型的建設(shè)項(xiàng)目的能力。
比如:
DB::table('users')-insert(array(
array('email' = 'taylor@example.com', 'votes' = 0),
array('email' = 'dayle@example.com', 'votes' = 0),
));
以上是操作表users,執(zhí)行insert語(yǔ)句,參數(shù)是一個(gè)數(shù)組,封裝了兩條數(shù)據(jù),這里可以自定義數(shù)據(jù),insert內(nèi)部就編程批量插入了。
然后調(diào)用save方法:
public static function create(array $attributes)
{
$model = new static($attributes);
$model-save();
return $model;
}
if?($strleng100){
//如果大于100條就每次寫(xiě)入100,休息1秒,然后繼續(xù)寫(xiě),直到寫(xiě)完為止
$write_count?=?floor($strleng/100);
while?($write_count??0){
for?($i=0;$i100;$i++){
echo?"INSERT?INTO?tbl_name?(a,b,c)?VALUES(1,2,3)";//寫(xiě)100次就休息
}
//echo?"INSERT?INTO?tbl_name?(a,b,c)?VALUES(1,2,3),(4,5,6),(7,8,9);";這樣可以一次插入多條數(shù)據(jù),效率更高
//參考
$write_count?-=1?;
sleep(1);
echo?'休息1秒';
}
}
1W條數(shù)據(jù)量也不是特別大,那就直接讀取,然后在foreach入庫(kù)就可以了
如果數(shù)據(jù)量非常大的時(shí)候,那就分段讀取,然后入庫(kù)~
考慮到php超時(shí),那就網(wǎng)頁(yè)端打開(kāi),第一部分執(zhí)行完,刷新頁(yè)面,開(kāi)始執(zhí)行第二部分,依次進(jìn)行...
當(dāng)然,直接在命令行下執(zhí)行也可以~
如何解決PHP向數(shù)據(jù)庫(kù)大量插入數(shù)據(jù)時(shí),占用內(nèi)存不斷上升的問(wèn)題
?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());//連接你的數(shù)據(jù)庫(kù)
mysql_select_db("mydb");//選擇你的數(shù)據(jù)庫(kù)
$result = mysql_query("SELECT `name` FROM data_boy WHERE `id`='2' LIMIT 0, 60");//執(zhí)行SQL查詢(xún)語(yǔ)句,搜索出60條數(shù)據(jù)
while ($row = mysql_fetch_array($result)) {
echo "姓名:".$row[name]."br";
/*補(bǔ)充一句,此處也可以是:
echo "姓名:".$row[0]."br";此處"mysql_fetch_array"默認(rèn)返回的既有 關(guān)聯(lián)數(shù)組(字段作為鍵名),也有數(shù)字索引數(shù)組*/