sql >> データベース >  >> RDS >> Mysql

PHP / MySQLでは、メンバーごとに1つの投票しか許可されていませんか?

    テーブルにUNIQUE制約を追加できます。これは1回限りの操作です。スクリプトを実行するたびにこれを行う必要はなく、テーブル構造が変更されます。これをMySQL管理ツール(phpMyAdmin、Navicat、HeidiSQL、what-have-youなど)で実行します:

    ALTER TABLE awards_2009_votes ADD UNIQUE (member_id);
    

    この変更後、同じメンバーIDで2番目の投票を追加することはできなくなります-INSERT(またはUPDATE)は失敗します。

    ここでの利点は、チェックがデータベースで自動的に行われるため、1)コードとの重複をチェックしたり、2)複数の投票を手動で追加したりすることを心配する必要がないことです。

    @ middaparka として つまり、INSERT IGNOREを使用する必要があります 「キーの重複」エラーを回避するには:

    $sql_query = mysql_query("INSERT IGNORE INTO awards_2009_votes (`member_id`, `region`, `coach`, `official`, `volunteer`, `young_volunteer`) VALUES ('$memberid', '$region', '$coach', '$official', '$volunteer', '$young_volunteer')") or die (mysql_error());
    if (mysql_insert_id()) {
        // row was inserted - vote added
    } else {
        // row was not inserted - already voted
    }
    


    1. mysqlは外部結合を残しました

    2. Wordpressはどのように投稿をデータベース内のカテゴリにリンクしますか?

    3. MySQL 8.0要求された認証方法がクライアントに不明(caching_sha2_password)

    4. =*はどういう意味ですか?