2010-12-08 122 views
4

我找過類似的問題,但沒有成功。在PHP腳本中插入MySQL DB之前檢查值是否存在

我有這樣一段代碼:

form1.php

$query = "INSERT INTO table1 "; 
$query .= "(fname, lname, mail)"; 
$query .= " VALUES "; 
$query .= "('".$_POST[fname]."', '".$_POST[lname]."', '".$_POST[mail]."')"; 

$result = mysql_query($query) or die ("Query Failed: " . mysql_error()); 

而且我想,該腳本將檢查插入的值對應列存在,並拋出如果有錯誤它確實如此。有任何想法嗎?

+1

注意:如果你使用存儲過程而不是內聯查詢,你可以很好地維護你的代碼,它也會給你帶來諸如編譯查詢,語法檢查,防止sql注入等優點。 – dhinesh 2010-12-08 06:53:01

回答

10

在您關心的字段上創建一個UNIQUE鍵,並在事後檢測完整性錯誤。

+2

這真是唯一的方法,否則你最終會遇到失敗未被注意的競爭狀態。如果您先檢查並轉儲記錄,如果該記錄尚未存在,那麼您就可以開放某人在存在檢查和添加記錄之間添加記錄的可能性。 – AgentConundrum 2010-12-08 06:07:49

相關問題