我有一個csv文件,包含65000條記錄,需要導入到我的數據庫中。php將csv導入數據庫
我試過下面的代碼,但真的很慢。
無論如何,我可以做得更快。
@set_time_limit(1200);
$file = './csvFiles/aw_Products.csv';
$handle = fopen($file , 'r');
while (($row = fgetcsv($handle)) !== false) {
if(is_integer($row[0]) || $row[0] != 0)
{
$product = new Product();
$product->merchant_id = $row[0];
$product->merc_product_id = $row[1];
$product->product_id = $row[2];
$product->product_name = $row[3];
$product->product_desc = htmlentities($row[4]);
//$product->keywords = htmlentities($row[6]);
$product->category_id = $row[5];
$product->link_url = $row[6];
$product->image_url = $row[7];
$product->price = $row[8];
$product->delivery_cost = $row[9];
//$product->deliveryAvailable = $row[12];
//$product->deliveryDetails = $row[13];
//$product->valid_to = $row[14];
//$product->valid_from = ($row[3] == 'yes') ? 1 : 0;
if(Product::find_by_id($row[0]))
$product->updateRecord();
else
$product->createRecord();
}
sleep (1);
}
fclose($handle);
也許這是更合適的:http://stackoverflow.com/questions/9057377/import-csv-or-xml-to-mysql –
什麼是'睡眠(1);'爲?你叫它65000次,所以當然可能需要一段時間。 –
嘗試放置此代碼 - > $ product = new Product()循環外。 – Yagi