0

クエリがあり、正常に動作しています:

$sql=mysql_query("UPDATE customers SET  password='$id' WHERE c_number='$users1' ");
$result = mysql_query($sql);
if (mysql_error()) die('Error, You have not used our services before, so no details for you to visit and explore');

私が望むのは、このエラーメッセージを何らかのアラートまたは適切な表示の形で表示することです..何か考えはありますか?

4

4 に答える 4

0

技術的には、次のいずれかでない限り、そのクエリは決してエラーを返すべきではありません。

  1. テーブルまたは列が存在しない、
  2. ステートメントに解析エラーがあります。

どちらの場合も、表示したいエラー メッセージは当てはまりません。代わりに、影響を受ける行の数をテストする必要があります。

とはいえ、サーバー側のコードを使用してアラートを作成することは実際には不可能です。ただし、代わりに AJAX エンドポイントを作成できます。

if (errors) {
    $response = array('error' => 'Error message here');
} else {
    // update this if you want to pass data back to caller
    $response = array();
}
header('Content-Type: application/json');
echo json_encode($response);
exit;

クライアント側では、次のように AJAX を使用してフォームを送信します。

$.ajax({
    url: '/path/to/endpoint',
    data: { whatever },
    success: function(response) {
        if (response.error) {
            alert(response.error);
            return;
        }
        // yay, it worked
    }
});

別の方法として、おそらく古いブラウザーに対応するために、(様式化された) HTML 応答を生成することもできます。個人的には、ページの更新後にalert()ダイアログ ウィンドウが表示されるのが嫌いです。

于 2013-07-02T07:44:18.800 に答える
0

申し訳ありませんが、あなたのコードは明らかに間違っています (mysql_query を 2 回実行しています)。私はあなたが意味したと思います

$sql="UPDATE customers SET  password='$id' WHERE c_number='$users1' ";
$result = mysql_query($sql);
if (mysql_error()) die('Error, You have not used our services before, so no details for you to visit and explore');

PHP マニュアルを引用するには: *この拡張モジュールは PHP 5.5.0 で非推奨になり、将来削除される予定です。代わりに、MySQLi または PDO_MySQL 拡張機能を使用する必要があります。詳細については、MySQL: API ガイドの選択と関連する FAQ も参照してください*

とにかく、これを機能させましょう(そしてより安全に):

$sql="UPDATE customers SET  password='".myqsl_escape_string($id)."' WHERE c_number='".mysql_escape_string($users1)."' ";

これにより、$id と $users1 の両方で可能なすべての特殊文字をエスケープすることで、SQL インジェクションを防ぎます (これらの少なくとも 1 つはユーザーが送信したデータであると思われます)。

$result = mysql_query($sql);
if ($result===false) die('Error, You have not used our services before, so no details for you to visit and explore');

ここで重要なのは、クエリが失敗した場合に FALSE になる mysql_query の結果を使用することです。ここで '===' コンパレータを使用することをお勧めします。これは、0 または空の文字列を検索するのではなく、ブール値の false のみを検索するためです。詳細については、PHP mysql_query マニュアル ページを参照してください。

于 2013-07-02T07:44:19.673 に答える
0

にいくつかの HTML や JS を追加するだけですdie

if (mysql_error()) 
    die('<script type="text/javascript">
             alert("Error, You have not used our services before, so no details for you to visit and explore
         </script>' );

dieexitの PHP DOC

于 2013-07-02T07:38:38.883 に答える