दिलचस्प पोस्ट
MVC मॉडल से एक बाइट सरणी छवि प्रदर्शित करने के लिए कैसे डीबी में छवियों को संग्रहीत करना – हाँ या ना? डाटाबेस की तुलना करना और स्क्वीबबेस का उपयोग करके एसक्यूएल स्क्रिप्ट जेनरेट करना जावा: यूनिक्स टाइमस्टैम्प से दिनांक एक enum के भीतर इन # परिभाषा का उद्देश्य क्या है? जावास्क्रिप्ट कोड से पायथन फ़ंक्शन कॉल करें सॉर्ट किए गए एक सूची <TKey, TValue> पर किसी SortedDictionary <TKey, TValue> का उपयोग कब करें? क्या जावा में स्थिर तरीके से विरासत मिली है? WinForms या WPF के लिए UI को वापस इवेंट भेजने के लिए सिंक्रनाइज़ेशन कॉन्टैक्स का उपयोग करना कुछ अच्छा पायथन ओआरएम समाधान क्या हैं? पायथन urllib2.urlopen () धीमा है, कई यूआरएल को पढ़ने के लिए एक बेहतर तरीका चाहिए स्थानीय लोगों के साथ कैसे काम करता है? एसक्यूएल सर्वर में ओरेकल के राउड के बराबर सर्वर पर एक्सक्शंस डिक्टचर इन्फॉल्ट (यानी सेवाविशेषित्र से या <serviceDebug> कॉन्फ़िगरेशन वर्तन से) को शामिल करें चालू करें एंड्रॉइड – पीआईडी ​​का उपयोग करके प्रोसेसनाम या पैकेज कैसे प्राप्त करें?

मेरा पीडीओ वक्तव्य काम नहीं करता है

यह मेरा PHP एसक्यूएल स्टेटमेंट है और var डंपिंग के दौरान झूठ बोल रहा है

$password_md5 = md5($_GET['password']); $sql = $dbh->prepare('INSERT INTO users(full_name, e_mail, username, password, password_plain) VALUES (:fullname, :email, :username, :password, :password_plain)'); $result = $sql->execute(array( ':fullname' => $_GET['fullname'], ':email' => $_GET['email'], ':username' => $_GET['username'], ':password' => $password_md5, ':password_plain' => $_GET['password'])); 

वेब के समाधान से एकत्रित समाधान "मेरा पीडीओ वक्तव्य काम नहीं करता है"

अगर पीडीओ स्टेटमेंट फॉल्स को वापस लेता है, तो इसका मतलब है कि क्वेरी विफल हुई। त्रुटि के बारे में जागरूक होने के लिए आपको उचित त्रुटि रिपोर्टिंग मोड में PDO को सेट करना होगा।

कनेक्ट होने के बाद इस कोड को अपने कोड में रखें

 $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); 

त्रुटि संदेश प्राप्त करने के बाद, आपको इसे पढ़ना और समझना होगा। यह बहुत स्पष्ट लगता है, लेकिन शिक्षार्थियों अक्सर त्रुटि संदेश की चरम सहायकता को अनदेखा करते हैं। फिर भी अधिकांश समय यह समझाता है कि समस्या काफी सरल है। कहते हैं, यदि यह कहता है कि विशेष टेबल मौजूद नहीं है, तो आपको वर्तनी, टाइपो, पत्र केस, क्रेडेंशियल्स और ऐसी जांचना होगा। या, अगर यह कहता है कि SQL सिंटैक्स में कोई त्रुटि है, तो आपको अपने एसक्यूएल की जांच करनी होगी। और समस्या की जगह त्रुटि मेसेज में उद्धृत क्वेरी भाग से पहले सही है।

आपको त्रुटि संदेश पर भी विश्वास करना होगा। यदि यह कहता है कि टोकन की संख्या बाउंड वैरिएबल की संख्या से मेल नहीं खाती तो यह ऐसा है। अनुपस्थित तालिकाओं या स्तंभों के लिए भी यही जाता है। चुनाव को देखते हुए, यह आपकी खुद की गलती है या त्रुटि संदेश गलत है, हमेशा पूर्व से चिपके रहते हैं फिर से यह शोर लगता है, लेकिन इस साइट पर सैकड़ों सवाल यह साबित साबित अत्यंत उपयोगी है।


नोट करें कि पीडीओ त्रुटियों को देखने के लिए, आपको सामान्य में PHP त्रुटियां देखने में सक्षम होना चाहिए। ऐसा करने के लिए, आपको कॉन्फ़िगर करना होगा कि PHP साइट पर्यावरण पर निर्भर करता है:

  • डेवलपमेंट सर्वर पर स्क्रीन पर त्रुटियों को ठीक करना बहुत आसान है, जिसके लिए त्रुटियाँ प्रदर्शित करना चालू है।

     error_reporting(E_ALL); ini_set('display_errors',1); 
  • जबकि एक लाइव साइट पर, सभी त्रुटियों को लॉग इन करना होगा , लेकिन ग्राहक को कभी भी नहीं दिखाया जाएगा इसके लिए, PHP को इस तरह कॉन्फ़िगर करें:

     error_reporting(E_ALL); ini_set('display_errors', 0); ini_set('log_errors', 1); 

ध्यान दें कि error_reporting को हर समय E_ALL सेट किया जाना चाहिए।

यह भी ध्यान रखें कि आम भ्रम के बावजूद, त्रुटि रिपोर्टिंग के लिए कोई भी कोशिश-पकड़ का उपयोग नहीं किया गया है । PHP आपको पहले से ही PDO त्रुटियों की रिपोर्ट करेगा, और एक तरह से बेहतर रूप में। एक अपवाद अपवाद विकास के लिए बहुत अच्छा है, फिर भी यदि आप एक अनुकूलित त्रुटि पृष्ठ दिखाना चाहते हैं, फिर भी इस के लिए पकड़ने का उपयोग न करें, लेकिन कस्टम त्रुटि हैंडलर सेट करें संक्षेप में, आपको PDO त्रुटियों को कुछ विशेष रूप से व्यवहार करने की ज़रूरत नहीं है, लेकिन उन्हें अपने कोड में किसी भी अन्य त्रुटि के रूप में मानें।