yasaluyari
के जवाब पर विस्तार से चर्चा करते मैं कुछ इस तरह के साथ छड़ी जाएगा:
हम सिर्फ हमारी mysql_query इस प्रकार संशोधित कर सकते हैं:
function mysql_catchquery($query,$emsg='Error submitting the query'){
if ($result=mysql_query($query)) return $result;
else throw new Exception($emsg);
}
अब हम इसे इस तरह उपयोग कर सकते हैं, कुछ अच्छे उदाहरण:
try {
mysql_catchquery('CREATE TEMPORARY TABLE a (ID int(6))');
mysql_catchquery('insert into a values(666),(418),(93)');
mysql_catchquery('insert into b(ID, name) select a.ID, c.name from a join c on a.ID=c.ID');
$result=mysql_catchquery('select * from d where ID=7777777');
while ($tmp=mysql_fetch_assoc($result)) { ... }
} catch (Exception $e) {
echo $e->getMessage();
}
ध्यान दें कि यह कितना सुंदर है। जब भी कोई भी qq हमारी त्रुटियों के साथ gtfo विफल रहता है। और आप यह भी ध्यान दे सकते हैं कि सत्यापन के लिए हमें $result
चर में लेखन प्रश्नों की स्थिति को संग्रहीत करने की आवश्यकता नहीं है, क्योंकि हमारा कार्य अब इसे स्वयं ही संभालता है। और वैसे ही यह चयनों को संभालता है, यह सामान्य रूप से एक चर को परिणाम देता है जैसा सामान्य कार्य करता है, फिर भी त्रुटियों को स्वयं में संभालता है।
यह भी ध्यान दें, हमें वास्तविक त्रुटियों को दिखाने की आवश्यकता नहीं है क्योंकि वे बड़े सुरक्षा जोखिम को सहन करते हैं, खासकर इस पुराने विस्तार के साथ। यही कारण है कि हमारा डिफ़ॉल्ट अधिकांश समय ठीक होगा। फिर भी, अगर हम किसी विशेष क्वेरी त्रुटि के लिए उपयोगकर्ता को सूचित करना चाहते हैं, तो हम अपने कस्टम त्रुटि संदेश को प्रदर्शित करने के लिए हमेशा दूसरे पैरामीटर को पास कर सकते हैं।
"या मरने" के उपयोग पर: http://www.phpfreaks.com/blog/or-die-must-die – outis
अपवादों के रूप में वापसी मूल्यों की जांच करने के लिए, यह इस बात पर निर्भर करता है कि कितने अंक त्रुटियां उत्पन्न कर सकते हैं। एक या दो बिंदुओं के साथ, मैं त्रुटि जांच के साथ जाऊंगा, क्योंकि यह अधिक प्रदर्शनशील है और इस मामले में पढ़ने योग्य है। कोड ब्लॉक में तीन या अधिक त्रुटि जांच करने के बाद, अपवाद अधिक पठनीय हो जाते हैं। यह सब चक्रीय जटिलता को कम करने के बारे में है। ध्यान दें कि यह उस बिंदु को शामिल करता है जो आप त्रुटि को संभालते हैं; यदि आप सिग्नलिंग त्रुटियों के बारे में बात कर रहे हैं, तो आप विभिन्न दिशानिर्देशों के साथ हवादार हो जाएंगे। – outis