2013-05-29 25 views
1

它只是不斷添加一個row即使它已經存在,我不明白爲什麼?重複密鑰仍然插入作爲MYSQL條目

$submitted = explode("@", $submit['tag']); 
foreach ($submitted as $tag => $value) { 
    if ($value != "") { 
     $attag = "@".$value; 
     $sql_insert = dbquery("INSERT INTO dbtags(tag_name, tag_txt) VALUES('$value', '$attag') ON DUPLICATE KEY UPDATE tag_name=tag_name"); 
    } 
} 

任何人都可以幫忙嗎?

+3

是'tag_name'的主鍵?(或唯一?) – Johan

+0

我強烈建議將查詢移到循環外部 –

+0

@Johan,它的獨特性如果我改變它會更好嗎?初級? – FoxyFish

回答

1

你確定你的意思是UPDATE tag_name=tag_name而不是UPDATE tag_name=$value

此外,usePDO

+1

噢,當然!哈哈謝謝。 – FoxyFish

0

它應該是獨特的其他明智的重複將無法正常工作。上的重複密鑰更新TAG_NAME = TAG_NAME「)變化上的重複鍵忽略

+0

給了我這個..你的SQL語法有錯誤;檢查與你的MySQL服務器版本相對應的手冊,在'IGNORE tag_name = tag_name'附近使用正確的語法。 – FoxyFish

0

變化TAG_NAME數據類型爲二進制,你可能面臨區分大小寫問題