स्टेटमेंट को डीलोकेट करते समय, pg_query
. का रिटर्न वैल्यू सफलता को इंगित करता है या नहीं, जैसे किसी भी "उपयोगिता कथन" के लिए। विफलता पर इसे झूठी वापसी करनी चाहिए। उदाहरण के लिए:
if (!pg_query($cnx, "deallocate foobar")) {
echo "Error deallocate: " . pg_last_error($cnx);
}
else {
echo "deallocate successful";
}
यह प्रदर्शित करता है:
ध्यान दें कि डिलीकेट करने के लिए स्टेटमेंट नाम सिंगल कोट्स से घिरा नहीं होना चाहिए, क्योंकि यह एक पहचानकर्ता है, स्ट्रिंग अक्षर नहीं। यदि इसे समस्याग्रस्त वर्णों के कारण संलग्न करने की आवश्यकता है, तो इसे pg_escape_identifier
(php>
=5.4.4)
एक सत्र को साफ करने के लिए, तैयार किए गए कथनों पर पुनरावृति करना और उन्हें एक-एक करके हटाना भी आवश्यक नहीं है, आप DEALLOCATE ALL
इसके बजाय, अभी भी pg_query
. के साथ ।
एक अन्य कथन भी है जो एक प्रश्न में अधिक सफाई करता है:DISCARD ALL
इसके अलावा, इसमें से कोई भी आवश्यक नहीं है यदि स्क्रिप्ट वास्तव में पोस्टग्रेज से डिस्कनेक्ट हो जाती है, क्योंकि तैयार किए गए बयान उनके मूल सत्र के लिए स्थानीय होते हैं और इसके साथ मर जाते हैं।
स्क्रिप्ट के बीच कनेक्शन का पुन:उपयोग करते समय स्पष्ट सफाई आवश्यक है, या तो PHP द्वारा लगातार कनेक्शन के साथ (pg_pconnect
), या कनेक्शन पूलर जैसे pgBouncer
(हालांकि पूलर स्वयं DISCARD ALL
. को कॉल कर सकता है इसके विन्यास के आधार पर)।