PHP में डेटाबेस के साथ कार्य: PostgreSQL और MongoDB व्यवहार में
\n\nPHP में आधुनिक वेब विकास शायद ही कभी डेटाबेस के साथ बातचीत के बिना होता है। दो लोकप्रिय समाधान — रिलेशनल PostgreSQL और डॉक्यूमेंट-ओरिएंटेड MongoDB — डेवलपर्स को डेटा संग्रहण और प्रसंस्करण के लिए लचीले उपकरण प्रदान करते हैं। इस लेख में, हम समझेंगे कि इनमें से प्रत्येक DBMS से कैसे कनेक्ट किया जाए, बुनियादी CRUD-संचालन कैसे किए जाएं और सामान्य गलतियों से कैसे बचा जाए। सभी कोड उदाहरण PHP में लिखे गए हैं और उपयोग के लिए तैयार हैं।
\n\nPDO के माध्यम से PostgreSQL से कनेक्शन
\n\nPHP में PostgreSQL के साथ कार्य करने के लिए PDO (PHP Data Objects) एक्सटेंशन का उपयोग करने की अनुशंसा की जाती है। यह विभिन्न DBMS के लिए एक समान इंटरफ़ेस प्रदान करता है और तैयार अभिव्यक्तियों के माध्यम से SQL-इंजेक्शन से बचाता है।
\n\nयदि यह पहले से सक्रिय नहीं है तो pdo_pgsql ड्राइवर स्थापित करें। इसे phpinfo() या कमांड के माध्यम से जांचा जा सकता है:
php -m | grep pdo_pgsql\n\nस्थानीय डेटाबेस से कनेक्शन का उदाहरण:
\n\n<?php\n$host = 'localhost';\n$dbname = 'my_database';\n$user = 'postgres';\n$pass = 'secret';\n\ntry {\n $dsn = "pgsql:host=$host;dbname=$dbname";\n $pdo = new PDO($dsn, $user, $pass, [\n PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,\n PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC\n ]);\n echo "PostgreSQL से कनेक्शन सफल!";\n} catch (PDOException $e) {\n die("कनेक्शन त्रुटि: " . $e->getMessage());\n}\n\nकनेक्शन के बाद, एक सरल डेटा चयन करते हैं। एक users तालिका बनाएं और कुछ रिकॉर्ड सम्मिलित करें:
<?php\n// तालिका निर्माण\n$pdo->exec("CREATE TABLE IF NOT EXISTS users (\n id SERIAL PRIMARY KEY,\n name VARCHAR(100) NOT NULL,\n email VARCHAR(255) UNIQUE NOT NULL,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n)");\n\n// तैयार अभिव्यक्ति के माध्यम से डेटा सम्मिलन\n$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");\n$stmt->execute([':name' => 'इवान पेत्रोव', ':email' => 'ivan@example.com']);\necho "उपयोगकर्ता जोड़ा गया, ID: " . $pdo->lastInsertId();\n\n// सभी उपयोगकर्ताओं का चयन\n$users = $pdo->query("SELECT * FROM users")->fetchAll();\nforeach ($users as $user) {\n echo "{$user['name']} - {$user['email']}<br>";\n}\n\nआधिकारिक ड्राइवर के माध्यम से MongoDB के साथ कार्य
\n\nMongoDB — एक NoSQL डेटाबेस है जो डेटा को BSON (बाइनरी JSON) प्रारूप में संग्रहीत करता है। PHP के लिए एक आधिकारिक mongodb ड्राइवर है, जिसे mongodb/mongodb लाइब्रेरी के साथ Composer के माध्यम से स्थापित किया जाता है।
\n\nस्थापना:
\n\ncomposer require mongodb/mongodb\n\nMongoDB से कनेक्शन और डेटाबेस चयन:
\n\n<?php\nrequire 'vendor/autoload.php';\n\nuse MongoDB\\Client;\n\n$uri = 'mongodb://localhost:27017';\n$client = new Client($uri);\n$collection = $client->my_database->users; // डेटाबेस my_database, संग्रह users\n\necho "MongoDB से कनेक्शन सफल";\n\nअब CRUD-संचालन करते हैं। MongoDB में, डेटा साहचर्य सरणियों के रूप में प्रस्तुत किया जाता है:
\n\n<?php\n// दस्तावेज़ सम्मिलन\n$insertResult = $collection->insertOne([\n 'name' => 'अन्ना स्मिर्नोवा',\n 'email' => 'anna@example.com',\n 'age' => 28,\n 'tags' => ['php', 'mongodb']\n]);\necho "नए दस्तावेज़ का ID: " . $insertResult->getInsertedId();\n\n// फ़ील्ड द्वारा खोज\n$user = $collection->findOne(['email' => 'anna@example.com']);\necho "नाम: " . $user['name'];\n\n// अद्यतन: "status" फ़ील्ड जोड़ना\n$collection->updateOne(\n ['email' => 'anna@example.com'],\n ['$set' => ['status' => 'active']]\n);\n\n// हटाना\n$collection->deleteOne(['email' => 'anna@example.com']);\n\n