我想知道如果數據存在,那麼必須有mysql更新查詢,否則將數據插入到mysql表中。如果數據存在,如何執行更新查詢否則將數據插入到Mysql中?
我所做的是,我使用fgetcsv()函數將.csv文件中的數據提取到mysql中。 然後從csv &讀取每行,將這四個值放入四個變量&,然後觸發更新查詢。 SO我怎麼能檢查,如果一個數據不存在還是更新查詢工作(0行成功更新),所以我想確定數據& 插入到這臺否則,如果數據提出我更新查詢將工作。
我想更新或插入到product_entity_price表中的數據。 我的腳本 - :
if(($handle = fopen("/data/sample/items_0420.csv", "r")) !== FALSE)
{
while (($data = fgetcsv($handle, 8000, ",")) !== FALSE)
{
$num = count($data);
for ($c=0; $c < $num; $c++)
{
$temp = $data;
$string = implode(";", $temp);
}
$pieces = explode(";", $string);
$col1 = $pieces[0];
$col2 = $pieces[1];
$col3 = $pieces[2];
$col4 = $pieces[3];
$query_insert = "INSERT INTO import_prices (customer_id, sku, price, website) ".
"VALUES($col1,'$col2',$col3,'$col4') ".
"ON DUPLICATE KEY UPDATE customer_id=$col1, price=$col3,website='$col4' ";
$result = mysql_query($query_insert);
$query_update = "UPDATE product_entity_price pep
JOIN catalog_product cp ON cp.entity_id = pep.entity_id
AND cp.sku LIKE '$col2' AND website_id = $col4
JOIN customer_group cg ON cg.customer_group_id = pep.customer_group_id AND cg.customer_group_code = $col1
SET cpetp.value = ".$col3.";";
mysql_query($query_update);
}
}
'INSERT INTO ... ON DUPLICATE KEY UPDATE'應該已經這樣做了。任何錯誤? – CodeCaster 2012-04-20 13:57:20
你在'import_prices'表中有唯一的鍵嗎? – Travesty3 2012-04-20 13:57:45
HI CodeCaster,INSERT INTO ... ON DUPLICATE KEY UPDATE工作正常...但我想更新或插入另一張表product_entity_price ...&我們使用ON DUPLICATE KEY UPDATE對某些約束,如唯一鍵或主鍵。 ..但是在product_entity_price中沒有唯一的密鑰... – Prat 2012-04-20 14:12:13