PDO::exec()
फ़ंक्शन प्रभावित पंक्तियों की संख्या लौटाता है, यदि कोई पंक्तियाँ प्रभावित नहीं होती हैं तो 0 सहित।
इस तरह की एक लाइन die()
होगी क्योंकि exec
लौटाएगा 0
जिसे बूलियन असत्य के रूप में व्याख्यायित किया जाता है।
$dblink->exec("UPDATE `sometable` SET `somecolumn`=0 WHERE `somecolumn`=0") or die("Never use die for error handling.");
पीडीओ के लिए सबसे अच्छा त्रुटि प्रबंधन अभ्यास पीडीओ अपवादों का उपयोग करना है। PDO अपवाद सक्षम करें (PDOException वर्ग के, दस्तावेज़ देखें) इस तरह:
//enable Exception mode (uncaught exceptions work just like die() with the benefit of giving you details in logs of where execution was stopped and for what reason)
$pdoDBHandle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
or die()
और exit();
और अपवाद मोड सक्षम करें। मुझे यकीन है कि यह आपकी "अजीब" समस्या को ठीक कर देगा। PHP में अपवादों को फेंकने पर भी एक नज़र डालें, यहां तक कि प्रक्रियात्मक कोड के साथ (die()
को बदलने के लिए) और exit()
.
बीटीडब्ल्यू exit
die
. की तरह ही निष्पादन को रोकता है , सिवाय इसके कि यह सीएलआई मोड में उपयोगी है क्योंकि यह ऑपरेटिंग सिस्टम को एक सफलता/त्रुटि कोड देता है। यह वास्तव में त्रुटि प्रबंधन के लिए नहीं है।