【发布时间】:2016-06-21 16:31:57
【问题描述】:
我有一个脚本需要更改,因为要插入数据库的数据太大而无法立即执行。所以我创建了一个循环,将数组分成 6000 行的块,然后插入它。
我不确切知道数据是否太大而无法让服务器立即处理,或者是否太大而无法上传,但是 atm 我将这两个步骤分成了这 6000 个块。
代码:
for ($j = 0; $j <= ceil($alength / 6000); $j++){
$array = array_slice($arraysource, $j * 6000, 5999);
$sql = "INSERT INTO Ranking (rank, name, score, kd, wins, kills, deaths, shots, time, spree) VALUES ";
foreach($array as $a=>$value){
//transforming code for array
$ra = $array[$a][0];
$na = str_replace(",", ",", $array[$a][1]);
$na = str_replace("\", "\\\\", $na);
$na = str_replace("'", "\'", $na);
$sc = $array[$a][2];
$kd = $array[$a][3];
$wi = $array[$a][4];
$ki = $array[$a][5];
$de = $array[$a][6];
$sh = $array[$a][7];
$ti = $array[$a][8];
$sp = $array[$a][9];
$sql .= "('$ra',' $na ','$sc','$kd','$wi','$ki','$de','$sh','$ti','$sp'),";
}
$sql = substr($sql, 0, -1);
$conn->query($sql);
}
$conn->close();
现在它只插入前 5999 行,但不像它只执行一次循环一样。没有错误信息..
【问题讨论】:
-
我无法重现此内容。您的逻辑按我的预期工作。请提供一个最小、完整且可验证的示例。
标签: php arrays loops mysqli insert