जैसा कि मैं समझता हूं, आप उम्मीद करते हैं कि जब कथन निष्पादित करने में विफल रहता है तो पीडीओएक्सप्शन फेंक दिया जाएगा। लेकिन जैसा कि मैं देख सकता हूं, ऐसे मामलों में अपवाद डिफ़ॉल्ट रूप से नहीं फेंका जाता है। देखें कि आप इसे कैसे बदल सकते हैं यहां
मान लीजिए आपके मामले में आपके पास इस तरह का कोड होना चाहिए:
$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.
मान लीजिए यह आपके लिए ठीक काम करेगा।
कृपया ध्यान दें कि आपको
. का उपयोग नहीं करना चाहिए$SqlQuery="INSERT INTO tab_photo VALUES('$PhotoID','$ProjectId','$Day','$barCode','$photoName','$PhotoXml')";
इसके बजाय, आपको पैरामीटर बाइंडिंग का उपयोग करना चाहिए:
$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);
देखें यह अधिक जानकारी के लिए।