4

リモート ソースからデータを読み取る curl スクリプトがあります。以下は現在のコードです。

function download_page($path){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$path);
    curl_setopt($ch, CURLOPT_FAILONERROR,1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 15);
    $retValue = curl_exec($ch);                      
    curl_close($ch);
    return $retValue;
}
$sXML = download_page('http://remotepage.php&function=getItems&count=100&page=1');
$oXML = new SimpleXMLElement($sXML);
foreach($oXML->results->item->item as $oEntry){
    $insert_query = mysql_query("INSERT INTO tbl_item (first_name, last_name, date_added) VALUES ('" . $oEntry->firstname . "', '" . $oEntry->lastname . "', '" . date("Y-m-d H:i:s") . "')");
}

スクリプトは機能しますが、個々のレコードを書き込むため、挿入が非常に遅くなると思います。count 変数は各ページに返されるレコード数で、page 変数は単純なページ カウンターです。

一度に 100 個のレコードすべてを挿入する一括挿入ステートメントを実行する方法があるかどうか疑問に思っています。

前もって感謝します。

4

4 に答える 4

0

以下のように、一度にすべてのレコードを挿入できます: mysql テーブルからデータをエクスポートするときのように。

INSERT INTO tablename (id, field2, field3, field3) VALUES ('', 5454, '454', '545'), ('', 'erwe', 'rewrew', 'werew'), ('', 'ewrew', 'rwerwe', 'werwer'), ('', 'jkj', 'ere', 'uju') , ('', '343', '3434', 'dfdf');
于 2012-05-16T09:44:26.853 に答える