sql >> Databáze >  >> RDS >> Mysql

PHP/MYSQL umožňuje pouze jeden hlas na člena?

Do tabulky můžete přidat UNIKÁTNÍ omezení. Toto je jednorázová operace – nemusíte to dělat při každém spuštění skriptu, jde o změnu struktury tabulky. Spusťte to ve svém nástroji pro správu MySQL (např. phpMyAdmin, Navicat, HeidiSQL, what-have-you):

ALTER TABLE awards_2009_votes ADD UNIQUE (member_id);

Po této změně nebude možné přidat druhý hlas se stejným ID člena – INSERT (nebo UPDATE) se nezdaří.

Výhodou je, že kontrola probíhá automaticky v databázi, takže se nemusíte starat o 1) kontrolu duplikátů pomocí vašeho kódu nebo 2) ruční přidávání více hlasů.

Jako @middaparka říká, že byste měli použít INSERT IGNORE abyste se vyhnuli chybě „duplicitního klíče“:

$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. Jak vytvořit uživatele pro db v postgresql?

  2. Mám v MySQL uvádět čísla nebo ne?

  3. Vyberte Dotaz k načtení řádků v MySQL

  4. Náš záznam Microsoft Ignite Session Recording je nyní k dispozici k zobrazení!