1

UNIQUE Constraint行の重複を防ぐために、テーブルで2つの列を使用しています。同じ2列の行を挿入しようとすると、

データベースエラーが発生しましたエラー番号:1062

キー「サブスクリプション」の重複エントリ「62-88」

INSERT INTO subscriptionsuser_id、、)VALUES('62'、' 88'、' 2011-07-11 19:15:13' subscribed_todate

ファイル名:C:\ wamp \ www \ mysite \ system \ database \ DB_driver.php

行番号:330

Already subscribed!たとえば、mysqlエラーを表示する代わりに、phpエラーを返すにはどうすればよいですか?

4

5 に答える 5

5

mysql_errno()あなたの後に電話してmysql_query()、を確認してください1062

注:最初にデータベースにクエリを実行する方が、より一般的で直感的なソリューションです。真野町の回答をご覧ください

于 2011-07-10T16:26:26.303 に答える
5

エントリがデータベースにすでに存在するかどうかを確認するには、手動でクエリを実行する必要があると思います。だから次のようなもの:SELECT COUNT(*) FROM subscriptions WHERE (user_id = '62' AND subscribed_to = '88')。返されるカウントが>0の場合は、エラーを返しますが、表示する必要があります。

于 2011-07-10T16:26:56.063 に答える
1

3番目のリンクを使用して、mysqlエラーまたはmysql errnoをエラーのリストと比較し、条件が満たされた場合は、代替エラーメッセージを提供します。

于 2011-07-10T16:27:30.060 に答える
0

エラーを解決するには、次のようにします。

mysql_query($sql);

if (mysql_errno() == 1062) {       
  print "<script type=\"text/javascript\">"; 
  print "alert('The informations are already inserted')"; 
  print "</script>";
}
于 2013-01-17T05:59:06.740 に答える
0

このコードを試してください:

  $query = "INSERT INTO ".$table_name." ".$insertdata;
                if(mysqli_query($conn,$query)){
                    echo "data inserted into DB<br>";                   
                }else{
                   if(mysqli_errno($conn) == 1062)
                       echo "duplicate entry no need to insert into DB<br>";
                   else
                    echo "db insertion error:".$query."<br>";

                }//else end
于 2017-08-13T15:40:23.890 に答える