gpt4 book ai didi

PHP MYSQL 如何在更新时检查记录是否已经存在?

转载 作者:行者123 更新时间:2023-11-29 03:57:16 25 4
gpt4 key购买 nike

对于我员工的表,电子邮件是一个唯一字段。当我插入新员工时,我会检查电子邮件是否存在。如果它已经存在,您会收到一条错误消息:

    $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>';
}

但是在UPDATING一个字段的时候怎么办呢?因为如果我更新员工数据(不更改他的邮件),它不会让我,因为电子邮件已经存在。我能想到的就是先更新,然后检查是否有 2 条记录,如果有 2 条,则将其更新回原来的状态。

这是一个好的方法还是有更好的解决方案?

编辑

我自己的解决方案是更新表上有一个唯一索引并使用查询错误的表:

    if (mysql_error())
{
$errormsgnewemployee = '<p id=notification>Update failed. Please check if the email you entered already exists.</p>';
}

因为,如果不是唯一的唯一字段,为什么用户会有错误?在所有其他情况下,更新都会成功。

最佳答案

您可以使用相同的解决方案,您只需要“获取此电子邮件地址,但不是我的”以检查是否有任何其他用户在使用它。

例如。在更新之前,做这样的事情:

SELECT 1 FROM employee WHERE empemail = '$empemail' AND id != '$myid';

应该只返回电子邮件属于其他人的行。

附带说明一下,像这样将变量插入到 SQL 查询中存在潜在的安全问题 - 您不应该这样做。并且 mysql_* 函数已被弃用,应替换为 PDO 或 mysqli 替代品。

关于PHP MYSQL 如何在更新时检查记录是否已经存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13798155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com