У меня есть скрипка curl, которая считывает данные из удаленного источника. Ниже приведен текущий код:PHP bulk insert foreach
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 - количество записей, возвращаемых для каждой страницы, и переменной страницы - простой счетчик страниц.
Мне интересно, есть ли способ сделать массовый оператор вставки, чтобы вставить все 100 записей одновременно.
Заранее спасибо.
http://en.wikipedia.org/wiki/SQL_injection –
Вы уверены, что ее «INSERT» медленный, а не запрос 'cURL'? Попробуйте «эхо» на некоторое время, чтобы убедиться, что вы знаете, где его замедление. – vimist
Просьба ознакомиться с этим http://www.php.net/manual/en/mysqli.multi-query.php –