0

mysqlとphpでこれを行う方法についてはよく考えられません。基本的に、データを mysql データベースに送信できるようにしたいのですが、挿入する前に、そのエントリが既に存在するかどうかを確認します。

$guid=$_POST['guid'];
$name=$_POST['name'];
//Username
$user="webhost";
//Password
$pass="*******";
//IP To Host
$ip="***********";
//Database
$db="dayz2";
//Table
$table="whitelist";

//Database Connection
$con=@mysql_connect("$ip", "$user", "$pass")
            or die(mysql_error());

//Select Database
$dbcon=@mysql_select_db($db, $con)
            or die(mysql_error());
$dupesql = "SELECT * FROM $table where (name = '$name' AND guid = '$guid')";

$duperaw = mysql_query($dupesql);

if (mysql_num_rows($duberaw) > 0) {
  echo "Entry Already Exists";
}
else {
//Query Data Into Whitelist Table
$sql="INSERT INTO $table (name, guid) VALUES ('$name', '$guid')";

//Submit Data into Whitelist Table
$result=@mysql_query($sql, $con) or die(mysql_error());
}
?>
4

3 に答える 3

1

次の代わりに、別の方法でそれを行うことができます。

データを mysql データベースに送信しますが、挿入する前に、そのエントリが既に存在するかどうかを確認します。

できるよ:

存在しない場合はmysqlデータベースにデータを挿入し、存在しない場合は無視します

何かのようなもの :

INSERT IGNORE INTO table
INSERT IGNORE INTO yourtablename
SET fieldname = 'blah'
,..
于 2012-09-16T09:39:07.973 に答える
0

何をしようとしているかによって異なります。クエリの正確な基準は何ですか?

いくつかのオプションがあります:

  • INSERT IGNORE ...重複する主キーを持たない新しい行のみを挿入する場合に使用します。http://dev.mysql.com/doc/refman/5.5/en/insert.htmlを参照してください。

  • INSERT ... ON DUPLICATE KEY UPDATE新しい行を挿入し、主キーが一致する行を更新するために使用します。http://dev.mysql.com/doc/refman/5.5/en/insert-on-duplicate.htmlを参照してください。

  • 通常の SQLSELECT ...を使用して最初に結果を取得してから、結果に対してビジネス ロジックを実行してから、どちらにするか、INSERT ...またはUPDATE ...要件に応じて決定します。

于 2012-09-16T09:39:39.203 に答える
0

エントリが存在する場合に大文字と小文字をどのように処理するかによって異なります。エラーをスローしたい場合は、挿入イベントのテーブルトリガーを作成してそこにチェックを入れることができますが、挿入ごとにこのチェックが行われるため遅くなります。

于 2012-09-16T09:39:41.903 に答える