0

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' ) ; 
4

2 に答える 2

3

まあ、私はmysqlからエラーを返すことに取り組んでいませんが、mysqlクエリが真でない場合、エラーが返されます....それを使用して、実際に追加されたかエラーが返されたかを確認できます。エラーの場合は、それに応じてリダイレクトできます- 1 行のステートメントだけではなく、さらに 2 つのステートメントが必要です。しかし、それは私の知る限り正しい方法です

于 2012-04-16T13:57:02.457 に答える
-1

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' )
}
于 2012-04-16T13:54:11.523 に答える