0

次の表を与えます。

CREATE TABLE User (
Email VARCHAR(256) PRIMARY KEY,
Name VARCHAR(256),
);

テーブルに日付を挿入しようとしています。重複をチェックするには、SQL を使用して email = $email のユーザーからメールを選択し、返される数または行が 1 であることを確認する必要があります。1 の場合は、php を使用してエラー メッセージを出力するか、データをテーブルに入力し、次を使用してエラーを出力しますか?

mysql_query('INSERT INTO ...');
if (mysql_errno() == 1062) {
    print 'no way!';
}

どちらがより良い方法ですか?

4

2 に答える 2

0

次のようなクエリを実行できます。

$sql = "INSERT INTO `table` VALUES ('$email','$Name')"
      ." WHERE NOT EXISTS (SELECT * FROM `table` WHERE `email`='$email')";

mysql_query($sql) or die("There's a duplicate.");`
于 2012-10-14T07:08:46.743 に答える
0

一般的には、DBMS にチェックを任せたほうがよいでしょう。なぜなら、機能は既に存在し、テストされているからです。エラーメッセージを処理するだけです。

チェックを行うために独自のコードを使用することに固執する場合は、何時間ものブレインストーミングに備える必要があります (問題の複雑さを考えると)。

于 2012-10-14T07:14:47.087 に答える