Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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 MySQL:如果在INSERT INTO中已经使用了唯一字段,如何执行操作_Php_Mysql_Database_Insert_Unique - Fatal编程技术网

Php MySQL:如果在INSERT INTO中已经使用了唯一字段,如何执行操作

Php MySQL:如果在INSERT INTO中已经使用了唯一字段,如何执行操作,php,mysql,database,insert,unique,Php,Mysql,Database,Insert,Unique,我正在使用MySQL语句INSERT INTO将数据插入到我的表中。我有几个独特的字段,如用户名和电子邮件。我想插入数据,但如果已经使用了唯一字段(比如有人试图使用已经存在的用户名),我想执行一个操作 说重定向页面,或设置会话。目前,我的代码的行为就像它插入的一样,但是很明显,由于字段是唯一的,所以什么都不做。我试过下面的代码,但运气不好 // Add the data to the table 'users' mysql_query("INSERT INTO users (username,

我正在使用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\u受影响的\u行-获取上一个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' )
}

我还没有从mysql返回错误,但是如果mysql查询不正确,它将返回错误。。。。您可以使用它来检查它是否实际添加或返回了错误,如果出现错误,您可以相应地重定向,它将需要另外两条语句,而不仅仅是一行语句。但就我所知,这是正确的方法

我将如何在代码中使用它;如果(mysql_受影响的_行)==0{start session}?这是错误的,因为如果约束产生错误,查询将失败,函数将返回-1,而不是0。正确的方法是检查查询是否成功,而不是检查受影响的行。