dedlfix: PDO: Wo fange ich den Fehler ab?

Beitrag lesen

Tach!

Wo kann ich meine Funktion "fehler" bei einem Prepared Statement einbringen?

Die Frage ist, ob man überhaupt eine Universalfunktion haben möchte, oder ob man nicht lieber individuell entscheiden möchte, was dem Anwender bei einem Fehler als Alternative vorgesetzt wird.

$abfrage="insert into tabelle ( ID,ID2,ID3,Del )
VALUES (?, ?, ?, ?)
WHERE ID = ".kontextwechsel_beachten($id,int)."";

Ein Insert hat keine Where-Klausel. Und wenn du schon mit Prepared Statements arbeitest, dann wäre es angebracht, es vollständig zu tun, nicht teils mit Platzhaltern und teils herkömmlich zusammengefummelt.

$stmt = $dbh->prepare($abfrage);

An dieser Stelle kann ein Fehler auftreten.

$stmt->execute(NULL,$last_insert_id,$row_aus_anderer_abfrage[0],$row_aus_anderer_abfrage[1]);

An dieser Stelle auch.

Wenn dieser Insert einen Fehler produziert, wie fange ich diesen ab und mache was damit?

Bei PDO kann man eine von drei Arten der Fehlermeldungen einstellen, Silent, Warning und Exception. Ich würde vermutlich in dem Fall zu Exception greifen und alles in den try-Block setzen, wenn keine Individualbehandlung von Prepare und Execute notwendig ist.

dedlfix.