Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何限制特定电子邮件插入数据库?_Php_Mysql - Fatal编程技术网

Php 如何限制特定电子邮件插入数据库?

Php 如何限制特定电子邮件插入数据库?,php,mysql,Php,Mysql,我只是在寻找一种最有效的方法,在用户使用其独特的电子邮件创建帐户时,只允许将特定的电子邮件插入我的数据库一次。我假设它是一个简单的if语句,如果尝试,它会触发一条错误消息 这只能通过php实现,还是有mysql快捷方式来实现?只需将唯一索引添加到数据库的电子邮件字段中即可。 看 更新 好的,现在您已经更准确地解释了您的问题,我建议您仍然在数据库中保留电子邮件字段唯一,但是为尝试使用现有电子邮件地址创建帐户的用户添加一些用户友好的通知。您可以这样做,例如向他们显示一个弹出窗口,告诉他们该地址已在

我只是在寻找一种最有效的方法,在用户使用其独特的电子邮件创建帐户时,只允许将特定的电子邮件插入我的数据库一次。我假设它是一个简单的if语句,如果尝试,它会触发一条错误消息


这只能通过php实现,还是有mysql快捷方式来实现?

只需将唯一索引添加到数据库的电子邮件字段中即可。 看


更新


好的,现在您已经更准确地解释了您的问题,我建议您仍然在数据库中保留电子邮件字段
唯一
,但是为尝试使用现有电子邮件地址创建帐户的用户添加一些用户友好的通知。您可以这样做,例如向他们显示一个弹出窗口,告诉他们该地址已在使用,建议他们重置密码以防忘记密码,等等。

如果您只希望数据库表中有唯一的电子邮件地址,请在存储电子邮件地址的字段上创建一个唯一索引。这将自动防止在表中插入任何重复项

在应用层,最好的做法是在插入新记录之前检查数据库中的记录,或者简单地尝试将记录插入数据库并处理由于尝试插入重复密钥而导致的任何错误


就我个人而言,我更喜欢后者,因为在大多数情况下,只需要对DB进行一次查询(插入查询),而且我在所有情况下都会处理DB错误情况,因此只需添加一点逻辑来确定错误是否是由于重复的密钥插入尝试造成的非常简单。

什么电子邮件?你怎么得到它们?你如何决定哪些邮件是你想要的,哪些是你不想要的?对不起,这有点不清楚。当用户创建帐户时,我只想允许特定电子邮件发送一次。为什么这是一个糟糕的问题?我真的同意否决票,但我认为人们应该解释,而不是盲目地扣动扳机。我可以通过这种方式从我的错误中吸取教训。我没有否决你,但你通常必须通过解释你迄今为止所做的努力以及错误是什么等来证明你确实试图解决这个问题。更多信息请参见常见问题解答。你的问题不清楚——我怀疑这就是否决的原因。”“电子邮件”可以从字面上理解——你要问的是如何在数据库中唯一地选择一个“电子邮件地址”。