Soweit ich weiß, erwarten Sie, dass PDOException ausgelöst wird, wenn die Ausführung der Anweisung fehlschlägt. Aber wie ich sehe, wird in solchen Fällen standardmäßig keine Ausnahme ausgelöst. Sehen Sie, wie Sie das hier ändern können
Angenommen, Sie sollten in Ihrem Fall einen Code wie diesen haben:
$conn = new PDO($connection_string);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // this will force PDO to throw exception when SQL statement fails instead of simply setting an error.
Angenommen, das funktioniert gut für Sie.
Bitte beachten Sie, dass Sie
nicht verwenden sollten$SqlQuery="INSERT INTO tab_photo VALUES('$PhotoID','$ProjectId','$Day','$barCode','$photoName','$PhotoXml')";
Stattdessen sollten Sie Parameter-Bindung verwenden:
$SqlQuery="INSERT INTO tab_photo VALUES(:PhotoID,:ProjectId,:Day,:barCode,:photoName,:PhotoXml)";
$stmt = $conn->prepare($SqlQuery);
$conn->beginTransaction();
$stmt->execute(array(':PhotoID' => $PhotoID, ':ProjectId' => $ProjectId, ....));
sleep(1);
Siehe dies für weitere Details.