次のコードがあります。これは、データベースへの挿入をより効率的に実行し、PDO を使用するようにコードを更新したいと考えています。
foreach ($urls as $i => $url) {
//path to csv file
$web = "http://path-to-file/".$url;
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt ($ch, CURLOPT_URL, $web);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);
//explode the csv file by new line
$r = explode("\n", $result);
$sql = "insert into product (`product_name`) values ";
for ($i = 1; $i <= count($r); $i++){
//explode each row by comma
$n = explode(",", $r[$i]);
$product_name = $n[0];
$sql .= "('$product_name'),";
}
$sql = trim($sql, ",");
if(count($n) != 0)
mysql_query($sql);
}
まず、リモート ファイルからデータを取得し、このすべてのデータをファイルからデータベースに挿入するというループがあります。現時点では、コードは 1 つのファイルからデータを挿入し、次のファイルに移動します。各ファイルには最大 2000 の挿入を含めることができ、通常は 15 のバッチで実行されます (したがって、挿入されるレコードのおおよその合計は 30000 です)。30000 レコードすべてを 1 回のヒットで挿入するか、またはバッチで挿入する方が、データベース上でより効率的でしょうか? (サイトに複数のユーザーがいて、ファイルを取得して挿入を実行している可能性があることに注意してください)。
次に、上記のコードを PDO を使用するように変更したいと思います。
これに関する任意の助けをいただければ幸いです。
ありがとう
PS。PDO db 接続を作成する方法を知っています。