對於我的員工表,電子郵件是一個獨特的領域。當我插入新員工時,我會檢查電子郵件的存在。如果它已經存在,您會收到一條錯誤消息:PHP MYSQL如何檢查UPDATING時記錄是否已經存在?
$selectquery ="SELECT * FROM employee WHERE empemail='$empemail'";
$selectresult=mysql_query($selectquery) or die("query fout " . mysql_error());
if(mysql_num_rows($selectresult)==1)
{
$errormsgnewemployee = '<p id=notification>The email you entered already exists.</p>';
}
但是如何在更新字段時執行此操作?因爲如果我更新員工數據(不更改他的郵件),它不會讓我,因爲電子郵件已經存在。我能想到的只是先進行更新,然後檢查是否有2條記錄,如果有2條記錄,則將它更新回原來的位置。
這是一個好方法還是有更好的解決方案?
編輯
自己的解決方案是更新其在桌子上unique index
和使用查詢錯誤表:
if (mysql_error())
{
$errormsgnewemployee = '<p id=notification>Update failed. Please check if the email you entered already exists.</p>';
}
因爲,否則爲什麼用戶有錯誤,如果它不是唯一唯一的領域?在所有其他情況下,更新會成功。
爲什麼不在表單中傳遞參數,無論是「$ action = UPDATE」還是「INSERT」? – Touki
那不是問題Touki,它是關於如何編寫UPDATE問題的檢查,不返回數據庫錯誤,但我自己的文本。我正在嘗試使用捕獲錯誤號的解決方案,查找語法等。 –
** Heads up!** PHP的未來版本是*棄用和刪除mysql_'系列函數。現在將是[切換到PDO](http://php.net/book.pdo)或[mysqli](http://php.net/book.mysqli)的好時機。 – Charles