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

ऐरे पैरामीटर्स कैसे पास करें और पीडीओ के साथ लिमिट क्लॉज का उपयोग कैसे करें

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

How to Pass Array Parameters and Use LIMIT Clause with PDO

ऐरे पैरामीटर्स को पास करना और पीडीओ के साथ LIMIT क्लॉज का उपयोग करना

डेटाबेस प्रश्नों के साथ काम करते समय, पैरामीटर्स की एक सरणी को पास करना फायदेमंद हो सकता है LIMIT क्लॉज का उपयोग करते समय एक PDO स्टेटमेंट। हालाँकि, अलग-अलग मापदंडों को सेट करने के लिए बाइंडपार्म विधि का उपयोग करते समय यह चुनौतीपूर्ण हो सकता है। , जबकि निष्पादन विधि नामित मापदंडों की एक सरणी की अपेक्षा करती है। यह असंगति दोनों दृष्टिकोणों को एक साथ उपयोग करने से रोकती है।

समस्या पर काबू पाना

समाधान PDO::ATTR_EMULATE_PREPARES की डिफ़ॉल्ट सेटिंग को अक्षम करने में निहित है। सक्षम होने पर, पीडीओ आंतरिक रूप से गतिशील एसक्यूएल उत्पन्न करता है और मूल्यों को उद्धृत करता है, अनिवार्य रूप से तैयार कथनों का अनुकरण करता है। हालाँकि, यह डिफ़ॉल्ट व्यवहार नामित मापदंडों को पारित करने में हस्तक्षेप करता है। . यह पीडीओ को वास्तविक तैयार किए गए कथनों का उपयोग करने की अनुमति देता है, जिससे LIMIT क्लॉज का उपयोग करते हुए नामित मापदंडों को बांधना संभव हो जाता है।

उदाहरण उपयोग

$pdo->setAttribute (PDO::ATTR_EMULATE_PREPARES, गलत); $sql = "चयन करें * तालिका से जहां आईडी CONCAT की तरह है ('%', :id, '%') LIMIT :limit1, :limit2"; $stmt = $pdo->तैयार करें($sql); $stmt->execute(array(':id' => $id, ':limit1' => $limit1, ':limit2' => $limit2)); // कार्य!

प्रदर्शन संबंधी विचार

प्रदर्शन को बढ़ाने के लिए MySQL के लिए डिफ़ॉल्ट रूप से अनुकरणीय तैयारी का उपयोग किया जाता है। अनुकरणीय तैयारी को अक्षम करने से प्रदर्शन थोड़ा कम हो सकता है, लेकिन यह पैरामीटर बाइंडिंग में अधिक लचीलेपन को सक्षम बनाता है।

अतिरिक्त संसाधन

$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$sql = "SELECT * FROM table WHERE id LIKE CONCAT('%', :id, '%') LIMIT :limit1, :limit2";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(':id' => $id, ':limit1' => $limit1, ':limit2' => $limit2)); // Works!

[PDO MySQL: PDO::ATTR_EMULATE_PREPARES का उपयोग करें या नहीं?](https://stackoverflow.com/questions/3273325/pdo-mysql-use-pdo-attr-emulator-prepares-or -नहीं)

विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729678132 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3