Som jeg forstår, forventer du, at PDOException vil blive kastet, når sætningen ikke kan udføres. Men som jeg kan se, er undtagelsen ikke kastet som standard i sådanne tilfælde. Se hvordan du kan ændre det her
Antag, at du i dit tilfælde skulle have en kode som denne:
$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.
Antag, at dette vil fungere fint for dig.
Bemærk venligst, at du ikke bør bruge
$SqlQuery="INSERT INTO tab_photo VALUES('$PhotoID','$ProjectId','$Day','$barCode','$photoName','$PhotoXml')";
I stedet for det skal du bruge parameterbinding:
$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 dette for flere detaljer.