【发布时间】:2014-11-04 08:47:11
【问题描述】:
我在 php 中编写以下命令:
$query="insert into tableone (user_name, password, name, email) values('$user_name', '$password', '$name', '$email')";
if(mysql_query($query))
{
header("Location:thislocation.php");
} else {
echo '<br><br><font color="red"><strong>Username or EmailId already exists. Please try different Username.<br> If you have forgotten your Password <a href="forgotmypassword.php" title="Forgot Password?" alt="Forgot Password?"><u><i>click here</i></u></a>.</strong></font><br>';
}
在 mysql-db 中,我将 name 和 email 字段设置为唯一字段,并将 id 字段设置为自动递增,因此没有两个人拥有相同的注册记录。问题是,如果有人使用相同的用户名或电子邮件,则查询失败并执行 else 语句。但是,它会自动增加 id,而不会在 db 中添加记录。如果之后有人注册成功,他得到的 id 不会比前一个多 2。
如何只自动递增一次?
【问题讨论】:
-
何必费心呢?这只是一个 id,无论如何,当帐户被删除时,您会得到空白。
-
在保存之前添加验证。
-
您应该在插入之前使用选择查询进行检查
-
它的 MySQL 功能,在尝试插入重复项之前进行检查的最佳方法
-
@gerald Schneider 如果我有太多用户使用我的应用程序...假设百万(只是开玩笑)...我希望我的数据库看起来干净吗?
标签: php mysql unique auto-increment