PHP - PDO dublicate Error bricht Script ab.

Gamer20

Lt. Junior Grade
Registriert
Dez. 2005
Beiträge
496
hallo,

da meine INSERT methode dauernd doppelte einträge erzeugt (nicht immer), habe ich IN DER MYSQL TABELLE den Wert "unique" für 1 spalte gesetzt.

wenn nun ein fehler vom script ausgegeben wird:

Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry .............

bricht das script ab und läuft nicht weiter.

ich frage mich, wie ich das script weiter laufen lassen kann. ich nehme mal an, ich muß eine scriptmäßige fehlerbehandlung ins php script schreiben, aber ich habe keine ahnung WAS und WO ich etwas notieren muß. hier mein DB INSERT script.

hier mein aktueller code:

$stmt = $PDO->prepare("INSERT INTO `feeds` SET Titel = :Titel");
$stmt->bindParam(':Titel',$Titel,PDO: PARAM_STR);
$stmt->execute();


kennt jemand eine Lösungsvariante, um mein problem zu lösen?
 
PHP:
try {
    // ...
} catch (PDOException $e) {
    // TODO: log
    die(var_dump($e->getMessage()));
}
 
ich habe es jetzt so gemacht:

$PDO->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_SILENT);

deine info werde ich noch mit ergänzen. dank dir für deine hilfe :).
 
@Gamer20 Damit legst du aber alle Fehlermeldungen lahm. (Fuers debugging nicht brauchbar, fuer den Produktiveinsatz hingegen schon)
Vielleicht waere es sinnvoller vorher ein SELECT auszufuehren und ggf. den Eintrag zu aktualisieren falls bereits vorhanden, anstatt ihn einfach zu ignorieren.
 
tja das problem kann ich leider nicht finden. ich habe eine for schleife, in der aus einem rss feed die einträge ausgelesen werden und diese links werden in der DB abgespeichert.

foreach ($items AS $item) {...}

darin dann die DB abfrage. ich habe zum test, mir direkt darunter, per echo die links (jeden einzelnen) ausgeben lassen (mit jedem schleifen durchlauf). da gibts keine doppelten ausgaben (hätte ja sein können, das ich ein fehler in der schleife habe, der dafür sorgt, das der durchlauf 2x gemacht wird). so schlimm ist es nicht, da diese funktion bzw. das script NUR im administationsbereich vorhanden ist.

sprich das scheint wohl ein insert problem zu sein. sowas hatte ich noch nie. tja zumindest habe ich aktuell keine doppelten einträge mehr, dadurch das ich der tabelle, 1 spalte auf "unique" gesetzt habe.
 
Zuletzt bearbeitet:
Wurde das Skript irgendwie auch noch zusätzlich automatisiert von anderen Prozessen aufgerufen, um regelmäßig eine Aktualisierung vorzunehmen?
Falls ja, dann könnte das doppelte Erfassen schlichtweg daran liegen, dass das Skript zur gleichen Zeit mehrfach ausgeführt wurde.
 
Zurück
Oben