परिचय: क्यों PHP और डेटाबेस एक ताकत हैं
\n\nकोई भी आधुनिक वेबसाइट या एप्लिकेशन केवल पेजों का एक सेट नहीं है, बल्कि एक गतिशील प्रणाली है जो डेटा को संग्रहीत और संसाधित करती है। PHP, वेब डेवलपमेंट के लिए सबसे लोकप्रिय भाषाओं में से एक के रूप में, डेटाबेस के साथ काम करने के लिए शक्तिशाली उपकरण प्रदान करता है। इस लेख में, हम दो प्रमुख डेटाबेस प्रबंधन प्रणालियों (DBMS) पर चर्चा करेंगे: रिलेशनल PostgreSQL और डॉक्यूमेंट-ओरिएंटेड MongoDB।
\n\nशुरुआती के लिए, उनके बीच चुनाव मुश्किल लग सकता है, लेकिन वास्तव में प्रत्येक अपने स्वयं के कार्यों को हल करता है। PostgreSQL संरचित डेटा के लिए एक विश्वसनीय SQL मानक है, जबकि MongoDB तेज़ प्रोटोटाइपिंग और JSON-जैसे दस्तावेज़ों के साथ काम करने के लिए एक लचीली NoSQL प्रणाली है। हम दिखाएंगे कि PHP से दोनों से कैसे कनेक्ट किया जाए, बुनियादी संचालन (CRUD) कैसे किया जाए, और व्यावहारिक सुझाव देंगे।
\n\n1. वातावरण तैयार करना: क्या स्थापित करने की आवश्यकता है
\n\nकोड लिखने से पहले, सुनिश्चित करें कि आपके पास आवश्यक PHP एक्सटेंशन स्थापित हैं। PostgreSQL के साथ काम करने के लिए pdo_pgsql एक्सटेंशन की आवश्यकता है, MongoDB के लिए — mongodb (PECL या composer के माध्यम से)।
एक्सटेंशन स्थापित करना
\n- \n
- PostgreSQL: php.ini में
extension=pdo_pgsqlलाइन को अनकमेंट करें या पैकेज मैनेजर के माध्यम से स्थापित करें (उदाहरण के लिए,sudo apt install php-pgsql)। \n - MongoDB: Composer का उपयोग करें:
composer require mongodb/mongodb— यह आधिकारिक लाइब्रेरी स्थापित करेगा। \n
स्थापना के बाद, php -m | grep -i pgsql और php -m | grep -i mongodb चलाकर जांचें कि एक्सटेंशन सक्रिय हैं या नहीं।
2. PostgreSQL और PHP: विश्वसनीयता और SQL
\n\nPostgreSQL ACID-लेन-देन, जटिल क्वेरी और JSON फ़ील्ड के समर्थन के साथ एक शक्तिशाली रिलेशनल DBMS है। PHP में इसके साथ काम करने के लिए PDO (PHP Data Objects) का उपयोग करना सबसे सुविधाजनक है — एक सार्वभौमिक इंटरफ़ेस।
\n\nPostgreSQL से कनेक्शन
\nएक फ़ाइल connect_pgsql.php बनाएं:
<?php\n$host = 'localhost';\n$dbname = 'testdb';\n$user = 'postgres';\n$pass = 'password';\n\ntry {\n $pdo = new PDO("pgsql:host=$host;dbname=$dbname", $user, $pass);\n $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n echo "PostgreSQL से कनेक्शन सफल!";\n} catch (PDOException $e) {\n die("कनेक्शन त्रुटि: " . $e->getMessage());\n}\n?>\n\nusers तालिका के उदाहरण पर CRUD-संचालन
\nहम एक तालिका बनाएंगे और बुनियादी क्वेरी निष्पादित करेंगे।
\n\nतालिका बनाना
\n<?php\n$sql = "CREATE TABLE IF NOT EXISTS users (\n id SERIAL PRIMARY KEY,\n name VARCHAR(100) NOT NULL,\n email VARCHAR(150) UNIQUE NOT NULL,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n)";\n$pdo->exec($sql);\necho "तालिका बनाई गई।";\n?>\n\nडेटा सम्मिलित करना (CREATE)
\n<?php\n$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");\n$stmt->execute(['name' => 'इवान पेत्रोव', 'email' => 'ivan@example.com']);\necho "उपयोगकर्ता जोड़ा गया।";\n?>\n\nडेटा पढ़ना (READ)
\n<?php\n$stmt = $pdo->query("SELECT * FROM users");\nwhile ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {\n echo "ID: {$row['id']}, नाम: {$row['name']}, ईमेल: {$row['email']}<br>";\n}\n?>\n\nअपडेट (UPDATE) और हटाना (DELETE)
\n<?php\n// अपडेट\n$stmt = $pdo->prepare("UPDATE users SET name = :name WHERE id = :id");\n$stmt->execute(['name' => 'प्योत्र सिदोरोव', 'id' => 1]);\n\n// हटाना\n$stmt = $pdo->prepare("DELETE FROM users WHERE id = :id");\n$stmt->execute(['id' => 2]);\n?>\n\nसुझाव: SQL इंजेक्शन से बचाव के लिए हमेशा तैयार क्वेरी (prepare) का उपयोग करें।
\n\n3. MongoDB और PHP: स्कीमा के बिना लचीलापन
\n\nMongoDB डेटा को BSON (बाइनरी JSON) दस्तावेज़ों के रूप में संग्रहीत करता है।