对于我的员工表,电子邮件是一个独特的领域。当我插入新员工时,我会检查电子邮件的存在。如果它已经存在,您会收到一条错误消息: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