私の従業員のテーブルにとって、電子メールはユニークなフィールドです。新しい従業員を挿入するときは、メールの存在を確認します。すでに存在する場合は、次のエラーメッセージが表示されます。
$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>';
}
しかし、フィールドを更新するときにそれを行うにはどうすればよいですか?(メールを変更せずに)従業員のデータを更新すると、メールがすでに存在するため、更新できません。私が考えることができるのは、最初にUPDATEを実行し、次に2つのレコードがあるかどうかを確認し、2つある場合は、以前と同じように更新することです。
これは良いアプローチですか、それともより良い解決策がありますか?
編集
unique index
私自身の解決策は、テーブル上にがあり、クエリエラーを使用してテーブルを更新することです。
if (mysql_error())
{
$errormsgnewemployee = '<p id=notification>Update failed. Please check if the email you entered already exists.</p>';
}
なぜなら、それが唯一の一意のフィールドではない場合、なぜユーザーはエラーを起こすのでしょうか?他のすべての場合、更新は成功します。