2012-05-13 21 views
0

這裏有一個問題在特定區域IM與MySQL的INSERT忽略測試這一點,不斷增加同一條目表,即使我已經設置忽略INTO時INTO不斷增加重複條目

mysql_query("INSERT IGNORE INTO storeip (ip) 
VALUES ('$ip')"); 

。 Iv'e只開始學習PHP & MySQL,所以任何幫助將不勝感激。

感謝

+0

如果IP是餐桌上的唯一領域,只是讓主鍵,會出現沒有重複 – Nico

+0

感謝那些工作得很好,我不知道你能做到這一點:) 至少我正在學習,但以供將來參考,如果這是上不了檯面的唯一領域又怎麼會有我去做這個? 感謝 –

+0

我將修改這是一個答案,所以你能接受它,如果你有更多的領域,你只需要確定需要保持獨特的領域,使所有主鍵 – Nico

回答

1

看起來你沒有對IP列UNIQUE INDEX做。爲了讓INSERT IGNORE按需要工作,這是必要的。嘗試這個;

ALTER TABLE IP ADD UNIQUE(IP)

已經刪除重複,你可以運行此。

ALTER TABLE忽略的IP地址UNIQUE(IP)

+0

感謝我行設置主鍵以解決問題,但是,我沒有唯一索引,至少現在我知道如果我有多個字段,將來如何解決這個問題。 –

+0

[類似的問題(http://stackoverflow.com/questions/5914060/how-to-insert-data-with-ignore-if-one-variable-is-allways-different) –

+0

僅供參考,如果你的表是InnoDB的,這可能是一個壞主意。 InnoDB將主鍵與MyISAM略有不同。通常,最佳做法是創建一個自動增量主鍵,然後在需要唯一的數據上放置一個UNIQUE索引。希望有所幫助。 –

0

爲什麼不應該嗎?忽略只是忽略錯誤。使IP獨特。

alter table storip add unique (ip); 
+0

感謝感謝幫助 –

0

如果IP是餐桌上的唯一領域,只是讓主鍵,將不會有重複

alter table storeip add primary key (ip); 
+0

感謝您的幫助 –