gpt4 book ai didi

php - 使用PHP将大量数据插入MySQL

转载 作者:行者123 更新时间:2023-11-30 01:36:18 24 4
gpt4 key购买 nike

所以我的情况如下。我每24小时通过PHP从某个来源获取数据。现在,在此期间,这些数据会发生变化,添加新数据或更新一些数据。现在,当我每 24 小时运行一个查询来插入或更新此数据时,查询执行需要很长时间。如果执行时间适中,这不会成为问题,因为我计划将其设为 cron 作业,但现在的执行时间太长了。所以当我获得这些数据时,我正在考虑将这些数据从 PHP 写入 CSV 文件。然后将此 CSV 文件与 MySQL LOAD DATA 函数一起使用,据称该函数可以非常快速地从文件中插入大量数据。

所以问题是可以从 PHP 写入 CSV 文件并以适合 LOAD DATA INFILE 功能的方式对其进行格式化,以及如何每 24 小时删除该 CSV 并使用新插入的数据创建一个新文件,我该如何正确使用 LOAD DATA INFILE 函数来处理这个特定的 CSV 文件?哦,我可以用这一切来做一个 cron 工作吗?谢谢。

最佳答案

假设您从源接收数据并准备此数组:

$x=array(1=>array('1','2','3','4'), 2=>array('5','6','7','8'));

创建一个 csv 文件,如下所示:

    $file=fopen(<DIRECTORY_PATH>."file.csv","w");
if(!$file){
//error
}

$csv_data="";

foreach($x as $row){
foreach($row as $element){
$csv_data.=$element.", ";
}
//remove the last comma
$csv_data.="\n";

}

fwrite($file,$csv_data);

$query="load data infile '".<DIRECTORY_PATH>."file.csv"."' into table your_table";
if(!mysqli->query($query))
printf("Error: %s\n", $mysqli->error);

关于php - 使用PHP将大量数据插入MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16831090/

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