Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Richtiger Weg, um doppelte Einträge mit MySQL oder PHP zu verhindern

Sie könnten eine temporäre Tabelle verwenden. Lassen Sie die PHP-App alles in die temporäre Tabelle einfügen und rufen Sie dann eine Abfrage mit dieser Art von Logik auf.

insert into mainTable 
(field1, field2, etc)
select field1, field2, etc
from tempTable 
where (subquery to check for existing records goes here)

Oder Sie könnten try/catch verwenden. Ich kenne die PHP-Syntax nicht, aber da viele andere Sprachen so etwas können, würde ich erwarten, dass PHP das auch kann.

try
code to insert record
catch
if the error code is the one for duplicate records, do nothing.
if it's something else, handle it accordingly.