तैयार कथनों को INSERT INTO के साथ शामिल करना
PHP: डेटा ऑब्जेक्ट की भूलभुलैया की गहराइयों को पार करने पर, MySQL को निष्पादित करने का प्रयास करते समय एक जटिल पहेली उत्पन्न होती है विशेष रूप से INSERT INTO संचालन के लिए तैयार कथनों का उपयोग करते हुए प्रश्न। निम्नलिखित कोड स्निपेट पर विचार करें:
$statement = $link->prepare("INSERT INTO testtable(name, lastname, age) VALUES('Bob','Desaunois','18')"); $statement->execute();
कथित निर्धारित विधि का पालन करने के बावजूद, डेटाबेस हठपूर्वक उजाड़ बना हुआ है। आइए उन लुप्त तत्वों का पता लगाएं जिन्होंने हमारी प्रगति में बाधा उत्पन्न की है।
INSERT INTO प्रश्नों के लिए तैयार कथनों की क्षमता को अनलॉक करने की कुंजी पैरामीटर बाइंडिंग में निहित है, एक ऐसी तकनीक जो मूल्यों के सुरक्षित और गतिशील एकीकरण की अनुमति देती है एसक्यूएल कथन. यह प्लेसहोल्डर्स को क्वेरी में शामिल करके और बाद में निष्पादन के दौरान एक सहयोगी सरणी के रूप में संबंधित मान प्रदान करके प्राप्त किया जाता है।
संशोधित कोड का निरीक्षण करें:
$statement = $link->prepare('INSERT INTO testtable (name, lastname, age) VALUES (:fname, :sname, :age)'); $statement->execute([ 'fname' => 'Bob', 'sname' => 'Desaunois', 'age' => '18', ]);
क्वेरी के भीतर पैरामीटर नाम, ':fname', ':sname', और ':age' की उपस्थिति पर ध्यान दें। ये वास्तविक मानों के लिए प्लेसहोल्डर के रूप में कार्य करते हैं, जिन्हें फिर निष्पादन() फ़ंक्शन में एक सहयोगी सरणी के रूप में प्रदान किया जाता है।
वैकल्पिक रूप से, आप '?' का उपयोग कर सकते हैं। प्लेसहोल्डर के रूप में सिंटैक्स और पैरामीटर नाम निर्दिष्ट किए बिना मानों की एक सरणी पास करें:
$statement = $link->prepare('INSERT INTO testtable (name, lastname, age) VALUES (?, ?, ?)'); $statement->execute(['Bob', 'Desaunois', '18']);
दोनों दृष्टिकोण अपने-अपने फायदे और नुकसान पेश करते हैं। नामित मापदंडों का उपयोग पठनीयता को बढ़ाता है, जबकि '?' सिंटैक्स मानों को बाइंड करने की प्रक्रिया को सरल बनाता है। हालाँकि, अंततः, दोनों के बीच चयन करना व्यक्तिगत पसंद का मामला है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3