Som jag förstår förväntar du dig att PDOException kommer att kastas när satsen inte kan köras. Men som jag kan se är undantag inte som standard i sådana fall. Se hur du kan ändra det här
Anta att du i ditt fall ska ha en kod som denna:
$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.
Anta att detta kommer att fungera bra för dig.
Observera att du inte ska använda
$SqlQuery="INSERT INTO tab_photo VALUES('$PhotoID','$ProjectId','$Day','$barCode','$photoName','$PhotoXml')";
Istället för det bör du använda parameterbindning:
$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);
Se det här för mer information.