0

だから私の状況は次のとおりです。PHP を介して特定のソースから 24 時間ごとにデータを取得します。その間、このデータが変更されたり、新しいデータが追加されたり、一部が更新されたりします。このデータを 24 時間ごとに挿入または更新するクエリを実行すると、クエリの実行に時間がかかります。これをcronジョブにすることを計画しているため、実行時間が中程度であれば問題ありませんが、現在の実行時間は長すぎます。そこで、このデータを取得したら、PHP から CSV ファイルに書き込もうと考えていました。そして、この CSV ファイルをMySQL LOAD DATA、ファイルから大量のデータを非常に迅速に挿入すると思われる関数と一緒に使用します。

問題は、PHP から CSV ファイルに書き込んで、LOAD DATA INFILE機能に合わせてフォーマットすることが可能であり、24 時間ごとにその CSV を削除して、新しく挿入されたデータで新しい CSV を作成するにはどうすればよいかということです。LOAD DATA INFILEこの特定の CSV ファイルで関数を適切に使用してみてください。ああ、これらすべてから cron ジョブを作成できますか? ありがとう。

4

2 に答える 2

0

ソースからデータを受け取り、この配列を準備するとします。

$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);
于 2013-05-30T08:33:45.037 に答える