对于我的员工表,电子邮件是一个唯一字段。当我插入新员工时,我会检查电子邮件是否存在。如果它已经存在,您会收到一条错误消息:
$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 条,则像以前一样更新它。
这是一个好方法还是有更好的解决方案?
编辑
我自己的解决方案是更新在表上有 aunique index
的表并使用查询错误:
if (mysql_error())
{
$errormsgnewemployee = '<p id=notification>Update failed. Please check if the email you entered already exists.</p>';
}
因为,如果不是唯一的唯一字段,为什么用户会有错误?在所有其他情况下,更新都会成功。