array(3) { ["fileName"]=> -6ren">
gpt4 book ai didi

php - 如何将多维数组中的大量内容存储到mysql数据库中?

转载 作者:行者123 更新时间:2023-11-29 05:04:51 25 4
gpt4 key购买 nike

这是我的数组:

array(4) {
[0]=>
array(500000) {
["1234"]=>
array(3) {
["fileName"]=>
string(10) "monkey.jpg"
["path"]=>
string(20) "animales/monkey.jpg"
["dateTime"]=>
string(19) "2016-10-12 19:46:25"
}
["3456"]=>
array(3) {
["fileName"]=>
string(9) "horse.jpg"
["path"]=>
string(19) "animales/horse.jpg"
["dateTime"]=>
string(19) "2016-10-12 19:46:25"
}
.... and many more...
}
... and many more...
}

我想将内容存储到我的数据库中:

$sql = "INSERT INTO files (id,fileName,path,dateTime) values(?,?,?,?) ";

foreach($array as $key => $value){
if(is_array($value)){
foreach($value as $key => $v){
foreach($v as $k => $item){
if(is_array($v)){
$s = str_replace("\\","",$v['dateTime']);
$d = strtotime($s);
$dateTime = date('Y.m.d H:i:s', $d);
$q->execute(array($key,$v['fileName'],$v['path'],$dateTime));
}
}
}
}
}

我的问题是,我有超过 500.000 个条目。所以我的系统崩溃了。我想是因为循环里面的循环太多了。有没有一种方法可以只用一个循环或其他方式更快地阅读内容?

注意:$array 是一个像这样创建的拼接数组 ($array[] = array_splice($orinal_array, 0,count($original_array)); 实际上我这样做是为了让系统更快

最佳答案

请看这个答案:

MYSQL import data from csv using LOAD DATA INFILE

您应该将数据转换为 csv 并依赖于 LOAD DATA INFILE

并不是说您应该将 csv 文件上传到您的 mysql 服务器以依赖此 Mysql 功能

关于php - 如何将多维数组中的大量内容存储到mysql数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50444711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com