MySQL:如果唯一字段已与 INSERT INTO 一起使用,如何执行操作


MySQL: How to perform an action if a unique field is already used with INSERT INTO

我正在使用MySQL语句INSERT INTO将数据插入到我的表中。我有几个独特的字段,例如用户名和电子邮件。我想插入数据,但如果已经占用了一个唯一的字段(比如有人尝试使用已经存在的用户名),我想执行一个操作。

比如说重定向页面,或设置会话。目前,我的代码就像它插入一样,但显然什么也没做,因为该字段是唯一的。我已经尝试了下面的代码,但我没有运气。

// Add the data to the table 'users'
mysql_query("INSERT INTO users
(username, password, email, dob, gender) VALUES('$username', '$cleansedPassword', '$email', '$dob', '$gender') ")
or header( 'Location: index.php' ) ;
header( 'Location:  SignUp.php' ) ; 
好吧,

我没有处理从mysql返回错误的工作,但是如果mysql查询不正确,它将返回错误.... 您可以使用它来检查它是否实际添加或返回错误,如果出现错误 - 您可以相应地重定向 - 它将需要 2 多个语句,而不仅仅是一行语句。但据我所知,这是正确的方式

mysql_affected_rows — 获取先前 MySQL 操作中受影响的行数

如果受影响的行数为零,则表明 insert 语句不起作用。

mysql_query("INSERT INTO users
(username, password, email, dob, gender) VALUES('$username', '$cleansedPassword', '$email', '$dob', '$gender')");
if(mysql_affected_rows() == 0){
     header( 'Location: index.php' )
}else{
     header( 'Location:  SignUp.php' )
}