"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > आउट पैरामीटर्स के साथ संग्रहीत प्रक्रियाओं को कॉल करते समय पीडीओ "आउट या इनआउट तर्क ... एक चर नहीं है" क्यों फेंकता है?

आउट पैरामीटर्स के साथ संग्रहीत प्रक्रियाओं को कॉल करते समय पीडीओ "आउट या इनआउट तर्क ... एक चर नहीं है" क्यों फेंकता है?

2024-11-10 को प्रकाशित
ब्राउज़ करें:200

Why Does PDO Throw

आउट पैरामीटर्स के साथ संग्रहीत प्रक्रियाओं को लागू करने के लिए पीडीओ का उपयोग करना

पीडीओ का उपयोग करके संग्रहीत प्रक्रियाओं को कॉल करना एक निर्बाध प्रक्रिया हो सकती है; हालाँकि, बिना मापदंडों के संग्रहीत प्रक्रियाओं का उपयोग करने का प्रयास करते समय, एक रहस्यमय त्रुटि सामने आ सकती है:

SQLSTATE[42000]: Syntax error or access violation: 1414 OUT or INOUT argument 1 for routine mydb.proc_OUT is not a variable or NEW pseudo-variable in BEFORE trigger

समाधान: एक पीडीओ विशिष्टता

पीडीओ मैनुअल और इसके साथ हुई चर्चाओं की गहराई में जाने से पीडीओ की तैयार कथन कार्यक्षमता के भीतर एक विसंगति का पता चलता है। समस्या की जड़ संग्रहीत प्रक्रियाओं के भीतर आउट पैरामीटर्स को संभालने में निहित है।

इस समस्या को सुधारने के लिए, एक विशिष्ट समाधान आवश्यक है:

$stmt = $db->prepare("CALL SomeStoredProcedure(?, ?)"); 
$stmt->execute(array($someInParameter1, $someInParameter2));

वैकल्पिक दृष्टिकोण

एक अन्य विकल्प में एक SELECT स्टेटमेंट को शामिल करने के लिए संग्रहित प्रक्रिया को संशोधित करना शामिल है जो पुनर्प्राप्त होता है संग्रहीत कार्यविधि निष्पादन के बाद आउट पैरामीटर:

CALL SomeStoredProcedure($someInParameter1, $someInParameter2, @someOutParameter); 
SELECT @someOutParameter;

यह संशोधित दृष्टिकोण MySQL के भीतर संग्रहीत प्रक्रिया को सीधे कॉल करते समय देखे गए व्यवहार की नकल करता है।

इन समाधानों को अपनाने से, पीडीओ का उपयोग करके पैरामीटर के बिना संग्रहीत प्रक्रियाओं को कॉल करने से जुड़ी रहस्यमय त्रुटि विलुप्त हो जाता है, जिससे निर्बाध निष्पादन और आउट पैरामीटर मानों की पुनर्प्राप्ति की अनुमति मिलती है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3