我試圖解決更新問題或從文件(csv)插入新產品到數據庫。如何在一個腳本中使用SELECT多個(500 000)次?
問題是,在CSV文件只數和產品供應商。所以我需要爲每個產品尋找這個供應商和編號的ID。如果產品不在我需要插入新的,否則我只會更新存儲信息和價格。
該csv有500 000個產品(34MB)。
現在我'像這樣的代碼解決這個(但腳本停止,因爲沒有存儲空間(使用2GB)經過50個000文件行:
while (!feof($file_handle))
{
$data = fgetcsv($file_handle,5096,$i->column_separator);
if($row >= ($i->firstrow-1) && !empty($data[$i->column_product_code-1]) && !empty($data[$i->column_product_name-1]) && !empty($data[$i->column_price-1]) && $data[$i->column_price-1] > 0)
{
@$code = str_replace(array(' ','.','-','/'),'',$data[$i->column_product_code-1]);
@$supplier = iconv('WINDOWS-1250','UTF-8', $data[$i->column_producer_name-1]);
@$name = iconv('WINDOWS-1250','UTF-8', $data[$i->column_product_name-1]);
$article = $articleModel->searchImport($code,$supplier,isset($data[$i->column_producer_code-1]) ? $data[$i->column_producer_code-1]:NULL);
if($article !== FALSE)
{
$importqueueModel->update()
}
else
{
$importqueueModel->insert()
}
我找不出任何不同的步驟如何搭配從文件產品代碼和供應商從數據庫中獲得的ID,這樣我就可以更新或插入新的產品返回到數據庫中。
請幫幫忙,任何提示將不勝感激。
謝謝
你得到一些錯誤?您能否準確提供所寫的內容? – HamZa
你真的需要這樣做嗎?你看過mysqlimport嗎? http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html –