Możesz użyć tabeli tymczasowej. Niech aplikacja php wstawi wszystko do tabeli tymczasowej, a następnie wywoła zapytanie z tego rodzaju logiką.
insert into mainTable
(field1, field2, etc)
select field1, field2, etc
from tempTable
where (subquery to check for existing records goes here)
Możesz też użyć try/catch. Nie znam składni php, ale ponieważ wiele innych języków może robić tego typu rzeczy, spodziewałbym się, że php również będzie w stanie.
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.