gpt4 book ai didi

mysql - 设计困境 : If e-mail address already used, 发送电子邮件 "e-mail address already registered",但无法发送,因为无法将重复项添加到表中

转载 作者:行者123 更新时间:2023-11-29 13:40:26 25 4
gpt4 key购买 nike

注册表要求提供用户名电子邮件地址。数据通过验证后,将添加到 accounts 表中。它存储用户名、密码和电子邮件地址等数据。如果用户名已被占用,用户将收到通知,并且不会将任何数据添加到表中。它被视为 security issue如果立即通知用户该电子邮件地址已在表中。建议的解决方案是始终发送验证电子邮件,如果输入的用户名已存在,则电子邮件会显示“此电子邮件地址已被使用”(并且没有激活链接当然会给出)。

问题是,就目前的情况而言,如果 INSERT 查询无法将数据插入表中,则会显示消息“用户名已获取”。这可能是错误的,因为电子邮件地址在表中设置为唯一,因此如果输入相同的电子邮件地址,查询将失败。我无法再发送一封显示“该电子邮件地址已被使用”的验证电子邮件,因为表中没有包含该电子邮件地址的记录。

如何重新设计系统使其正常工作?

我使用的是 MySQL,表 accounts 具有主键 username 唯一键 e-mail 和属性 password 激活

if(mysqli_stmt_execute($createAccount))
echo 'Username available!';
else
echo 'Username unavailable!';

在 SQL 中是否有某种方法可以检查为什么查询无法插入到表中?例如,它可以判断哪个属性具有重复值吗?

如果我的问题不清楚,请告诉我。

最佳答案

首先运行 SELECT 查询来识别重复项。如果没有找到重复项,那么您可以执行 INSERT。

关于mysql - 设计困境 : If e-mail address already used, 发送电子邮件 "e-mail address already registered",但无法发送,因为无法将重复项添加到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18154031/

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