PHP और PostgreSQL: वेब डेवलपमेंट के लिए शक्तिशाली जोड़ी

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

PHP और PostgreSQL पहली क्वेरी से ही प्यार क्यों हैं?

\n\n

वेब डेवलपमेंट की दुनिया रूढ़ियों से भरी है। उनमें से एक कहता है: "PHP केवल MySQL के साथ दोस्ती करता है"। इसमें कुछ सच्चाई है, लेकिन केवल तब तक जब तक आप PHP और PostgreSQL के संयोजन को आज़माते नहीं हैं। यह साइकिल से स्पोर्ट्स मोटरसाइकिल पर जाने जैसा है: वही पहिए, लेकिन गति, चपलता और विश्वसनीयता बिल्कुल अलग होती है।

\n\n

PostgreSQL सिर्फ एक डेटाबेस नहीं है। यह एक ऑब्जेक्ट-रिलेशनल राक्षस है जो JSON, जियोडेटा, फुल-टेक्स्ट सर्च और जटिल ट्रांजेक्शन के साथ काम कर सकता है। और PHP इस ऑर्केस्ट्रा के लिए एक आदर्श कंडक्टर है। इस गाइड में, हम सब कुछ कवर करेंगे: ड्राइवर इंस्टॉल करने से लेकर production-ready कोड लिखने तक। चलिए शुरू करते हैं!

\n\n

1. इंस्टॉलेशन और सेटअप: उपकरण तैयार करना

\n\n

कोड लिखने से पहले, सुनिश्चित करें कि PHP को PostgreSQL के अस्तित्व के बारे में पता है। अधिकांश आधुनिक PHP वितरणों (जैसे, XAMPP, OpenServer, Docker) में pdo_pgsql एक्सटेंशन पहले से मौजूद है, लेकिन इसे सक्रिय करने की आवश्यकता है।

\n\n

1.1. php.ini में एक्सटेंशन सक्षम करना

\n\n

अपना php.ini खोलें और निम्नलिखित पंक्ति को अनकमेंट करें (शुरुआत में सेमीकोलन हटाएं):

\n\n
extension=pdo_pgsql
\n\n

यदि आप Linux का उपयोग कर रहे हैं, तो इंस्टॉलेशन इस प्रकार दिखता है:

\n\n
sudo apt-get install php-pgsql\nsudo service apache2 restart  # या nginx + php-fpm
\n\n

1.2. डेटाबेस और उपयोगकर्ता बनाना

\n\n

PostgreSQL कंसोल में प्रवेश करें:

\n\n
sudo -u postgres psql
\n\n

अब अपने प्रोजेक्ट के लिए एक डेटाबेस और उपयोगकर्ता बनाएं:

\n\n
CREATE DATABASE pythonlib_blog;\nCREATE USER myapp WITH PASSWORD 'SuperSecret123';\nGRANT ALL PRIVILEGES ON DATABASE pythonlib_blog TO myapp;\n\\q
\n\n

हो गया। अब हमारे पास pythonlib_blog डेटाबेस और myapp उपयोगकर्ता है।

\n\n

2. पहला कनेक्शन: PDO एक मानक के रूप में

\n\n

पुराने pg_connect() फंक्शन का कभी उपयोग न करें। आधुनिक PHP में PDO (PHP Data Objects) है - विभिन्न डेटाबेस के साथ काम करने के लिए एक एकीकृत इंटरफ़ेस। यह अधिक सुरक्षित, सुविधाजनक है और तैयार क्वेरी (prepared statements) का समर्थन करता है।

\n\n

2.1. कनेक्शन के लिए रैपर क्लास

\n\n

एक सरल Database क्लास बनाएं जो कनेक्शन का प्रबंधन करेगी:

\n\n
<?php\n\nclass Database {\n    private static ?PDO $instance = null;\n    private const DB_HOST = 'localhost';\n    private const DB_PORT = 5432;\n    private const DB_NAME = 'pythonlib_blog';\n    private const DB_USER = 'myapp';\n    private const DB_PASS = 'SuperSecret123';\n\n    public static function getConnection(): PDO {\n        if (self::$instance === null) {\n            $dsn = "pgsql:host=" . self::DB_HOST . ";port=" . self::DB_PORT . ";dbname=" . self::DB_NAME;\n            try {\n                self::$instance = new PDO($dsn, self::DB_USER, self::DB_PASS, [\n                    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,\n                    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,\n                    PDO::ATTR_EMULATE_PREPARES => false,\n                ]);\n            } catch (PDOException $e) {\n                die("Connection failed: " . $e->getMessage());\n            }\n        }\n        return self::$instance;\n    }\n}
\n\n

यह क्यों अच्छा है? पहला, सिंगलटन - हम हर अनुरोध पर नया कनेक्शन नहीं बनाते। दूसरा, ATTR_EMULATE_PREPARES => false PostgreSQL को PHP की ओर से एमुलेशन के बजाय वास्तविक तैयार क्वेरी का उपयोग करने के लिए मजबूर करता है। इससे प्रदर्शन और सुरक्षा बढ़ती है।

\n\n

3. CRUD-ऑपरेशन: बनाना, पढ़ना, अपडेट करना, हटाना

\n\n

अब असली मज़ा। मान लें कि हमारे पास pythonlib.ru पर लेखों के लिए articles तालिका है।

\n\n

3.1. तालिका बनाना

\n\n

अपने डेटाबेस में यह SQL चलाएं (psql या एडमिन पैनल के माध्यम से):

\n\n
CREATE TABLE articles (\n    id SERIAL PRIMARY KEY,\n    title VARCHAR(255)                

ब्लॉग

पुस्तक अनुशंसाएँ