] यह हर बार जब आप डेटाबेस कनेक्शन स्थापित करते हैं तो हर बार त्रुटि हैंडलिंग मोड को स्पष्ट रूप से सेट करने की आवश्यकता को समाप्त कर देता है। जब आप मैन्युअल रूप से $ dbh-> setAttribute (pdo :: attr_ermrmode, pdo :: irmode_exception) का उपयोग करके त्रुटि मोड सेट कर सकते हैं, तो आप आश्चर्यचकित हो सकते हैं कि क्या इस डिफ़ॉल्ट व्यवहार को बनाने का एक तरीका है। अपवाद हैंडलिंग
दुर्भाग्य से, php.ini फ़ाइल में कोई अंतर्निहित कॉन्फ़िगरेशन फ़ाइल या विकल्प नहीं है जो आपको डिफ़ॉल्ट रूप से अपवादों को फेंकने के लिए PDO सेट करने की अनुमति देता है। ऐसा इसलिए है क्योंकि PHP विश्व स्तर पर त्रुटि को संभालता है, और यह pdo के लिए विशिष्ट नहीं है। &&&]
1। कंस्ट्रक्टर तर्क
आप पीडीओ कंस्ट्रक्टर के लिए विकल्पों की एक सरणी पास कर सकते हैं, जिसमें त्रुटि हैंडलिंग मोड शामिल है:$ pdo = new pdo ('mysql: host = localhost; dbname = dbname = सोमाडैटबेस ',' उपयोगकर्ता नाम ',' पासवर्ड ', सरणी ( Pdo :: attr_errmode = & gt; Pdo :: ermode_exception ));
२। आवरण वर्ग
वैकल्पिक रूप से, आप एक आवरण वर्ग बना सकते हैं जो PDO का विस्तार करता है और हमेशा अपवाद मोड पर त्रुटि मोड सेट करता है: वर्ग MyPDO PDO का विस्तार करता है { सार्वजनिक कार्य __construct ($ DSN, $ उपयोगकर्ता नाम, $ पासवर्ड) { माता -पिता :: __ निर्माण ($ dsn, $ उपयोगकर्ता नाम, $ पासवर्ड, सरणी ( Pdo :: attr_errmode = & gt; Pdo :: ermode_exception )); } }
इस दृष्टिकोण के साथ, आप नियमित PDO वर्ग के बजाय अपने कस्टम PDO वर्ग का उपयोग कर सकते हैं और हमेशा अपवाद हैंडलिंग व्यवहार प्राप्त कर सकते हैं:
$ pdo = new mypdo ('mysql: host = localhost; dbname = somedatabase ',' उपयोगकर्ता नाम ',' पासवर्ड ');
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3