PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Apache libphp5.so . से .pgpass का उपयोग करना

भले ही php में PGPASSFILE हो वातावरण में यह अपाचे से विरासत में मिला है, जैसा कि getenv("PGPASSFILE") द्वारा सिद्ध किया गया है , ऐसा प्रतीत होता है कि यह वातावरण वह नहीं है जो साझा libpq . के लिए उपलब्ध है पुस्तकालय जो अंततः .pgpass . को संभालता है . यही कारण है कि इस सेटिंग पर ध्यान नहीं दिया जाता है।

डेटाबेस से कनेक्ट करने से पहले PHP में पहले से मौजूद वेरिएबल को पर्यावरण में दर्ज करना एक वैकल्पिक हल है:

if (getenv("PGPASSFILE")!="")
  putenv("PGPASSFILE=".getenv("PGPASSFILE"));

स्पष्ट putenv वेरिएबल को इस तरह से पुश करेगा जो इसे libpq . के लिए उपलब्ध कराता है getenv() . की कॉल . यह अजीब है क्योंकि आम तौर पर एक प्रक्रिया में केवल एक ही वातावरण होता है, लेकिन यह काम करता प्रतीत होता है।

मैंने एक अलग प्रश्न में एक्सटेंशन और PHP के कोर के बीच असंगत पर्यावरण समस्या के बारे में पूछा है:putenv() की आवश्यकता क्यों है पहले से परिभाषित पर्यावरण चर पर?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL क्वेरी में DESC ऑर्डर करते समय NULL मान पहले क्यों आते हैं?

  2. PHP पीडीओ गिनती के लिए बनाम स्क्लाइट कॉलम प्रकार पोस्टग्रेस (*)

  3. प्रत्येक समूह के लिए यादृच्छिक पंक्ति का चयन करें

  4. PostgreSQL 12:विदेशी कुंजियाँ और विभाजित तालिकाएँ

  5. PostgreSQL में उच्चारण हटाने का कार्य