2

ユーザーが重複したエントリでMySQLエラー#1062を送信しようとすると、MySQLエラー#1062を返す送信フォームがあります。例として、エラーは次のように述べています。

Duplicate entry 'graphics' for key 'name'

エラーが発生した理由と、エラーの原因となった特定のエントリを(平易な英語で)説明するカスタムメッセージをユーザーに提供したいと思います。例えば:

"Graphics" is a duplicate entry and should not be used. Please remove it and resubmit the form."

キーは常に「名前」になりますが、重複するエントリ自体は異なることがよくあります。生成されたMySQLエラーからその特定の値を引き出し、カスタムメッセージをその値にラップできるようにする必要があります。これはどのように行うことができますか?

4

2 に答える 2

4

mysql エラーが発生した場合にユーザーにエラー メッセージを表示して、簡単なエラー チェックを行うことができます。次のようなことを試すことができます:

$rows = mysql_query("SELECT `name` from `tbl` WHERE `name` = 'graphics';");

if(mysql_num_rows($rows) > 0){
    echo '"Graphics" is a duplicate entry and should not be used. Please remove it and resubmit the form.';
}else{
    insert...
}
于 2012-05-30T08:17:47.957 に答える
0

挿入するアイテムが事前に存在する場合は、データを入力する前にまずテーブルを確認できます。

次に、 if else ループを使用して、エラーに従ってカスタムメッセージを出力できます

      $check_exists = // runs the code here to check if the entry graphics already exists for the existing name

     if ($post['name'] == ''){

     // error message for blank entry 

     }elseif($check_exists == true) {

   // custom error mesage for duplicate entry 

    }else {

  // submit the form here

    }
于 2012-05-30T08:18:45.617 に答える