डेटाबेस हर जगह हैं और कोई व्यावहारिक PHP अनुप्रयोग नहीं है जो डेटाबेस के बिना मौजूद हो सकता है। शुरुआत से ही, PHP सभी लोकप्रिय DBMS के साथ इंटरफेस करने के कई तरीके प्रदान करता है। उदाहरण के लिए, MySQL आधारित डेटाबेस के साथ इंटरफेस करने के दो लोकप्रिय तरीके हैं mysql और mysqli.
वर्षों से, डेटाबेस एक लंबा सफर तय कर चुके हैं और अब कई अलग-अलग विक्रेता लोकप्रिय डीबीएमएस पेश करते हैं जो आधुनिक PHP ऐप्स को शक्ति देते हैं। विकास प्रथाओं को मानकीकृत और सुव्यवस्थित करने के लिए, PHP ने PHP 5.1 में PHP डेटा ऑब्जेक्ट (PDO) पेश किया। इन वस्तुओं का उपयोग पीडीओ डेटाबेस कनेक्शन स्थापित करने के लिए किया जाता है।
पीडीओ एक डेटाबेस एक्सेस लेयर है जो PHP अनुप्रयोगों में डेटाबेस तक पहुँचने और प्रबंधित करने के लिए एक तेज़ और सुसंगत इंटरफ़ेस प्रदान करता है। प्रत्येक DBMS में विशिष्ट PDO ड्राइवर (ड्राइवर) होते हैं जिन्हें तब स्थापित किया जाना चाहिए जब आप PHP अनुप्रयोगों में PDO का उपयोग कर रहे हों।
समर्थित डेटाबेस
ड्राइवर का नाम समर्थित डेटाबेस
PDO_CUBRID | क्यूब्रिड |
PDO_DBLIB | FreeTDS / Microsoft SQL सर्वर / Sybase |
PDO_FIREBIRD | फ़ायरबर्ड |
PDO_IBM | आईबीएम डीबी2 |
PDO_INFORMIX | आईबीएम इनफॉर्मिक्स डायनामिक सर्वर |
PDO_MYSQL | MySQL 3.x/4.x/5.x |
PDO_OCI | Oracle कॉल इंटरफ़ेस |
PDO_ODBC | ODBC v3 (IBM DB2, unixODBC और win32 ODBC) |
PDO_PGSQL | PostgreSQL |
PDO_SQLITE | SQLite 3 और SQLite 2 |
PDO_SQLSRV | माइक्रोसॉफ्ट एसक्यूएल सर्वर / एसक्यूएल एज़ूर |
PDO_4D | 4D |
डिफ़ॉल्ट रूप से, PHP में PDO_SQLite ड्राइवर स्थापित है। हालाँकि, यदि आप अन्य डेटाबेस के साथ काम करना चाहते हैं, तो आपको पहले संबंधित ड्राइवर को स्थापित करना होगा।
यह जांचने के लिए कि आपके सिस्टम पर कौन से ड्राइवर स्थापित हैं, एक नई PHP फ़ाइल बनाएं और उसमें निम्न कोड स्निपेट जोड़ें:
<?php print_r(PDO::getAvailableDrivers()); ?>
पीडीओ के साथ काम करना
पीडीओ पिछले सभी डेटाबेस इंटरैक्शन दृष्टिकोणों को बदल देता है। पीडीओ का उपयोग करके, आप आसानी से सीआरयूडी और संबंधित डीबीएमएस संचालन कर सकते हैं। वास्तव में, पीडीओ एक परत के रूप में कार्य करता है जो डेटाबेस से संबंधित कार्यों को शेष कोड से अलग करता है।
आपको यह भी पसंद आ सकता है: PHP और MySQL में सरल CRUD
कनेक्टिविटी
पीडीओ के सबसे महत्वपूर्ण लाभों में से एक सरल और बहुत ही सरल डेटाबेस कनेक्टिविटी है। निम्नलिखित कोड स्निपेट पर विचार करें जिसका उपयोग डेटाबेस के साथ कनेक्शन स्थापित करने के लिए किया जाता है। ध्यान दें कि जब अंतर्निहित डीबीएमएस बदलता है, तो आपको केवल डेटाबेस प्रकार बदलने की आवश्यकता होती है।
<?php Class Connection { private $server = "mysql:host=localhost;dbname=cloudways"; private $user = "root"; private $pass = ""; private $options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,); protected $con; public function openConnection() { try { $this->con = new PDO($this->server, $this->user,$this->pass,$this->options); return $this->con; } catch (PDOException $e) { echo "There is some problem in connection: " . $e->getMessage(); } } public function closeConnection() { $this->con = null; } } ?>
उपरोक्त कोड स्निपेट में, ध्यान दें कि DBMS MySQL है। हालाँकि, यदि DBMS MS SQL सर्वर में बदल जाता है, तो केवल mysql का प्रतिस्थापन होगा। mssql के साथ।
नोट: पीडीओ अपवादों को संभाल सकता है। इसलिए, इसके संचालन को हमेशा एक कोशिश और पकड़ ब्लॉक में लपेटें।
सर्वर पर समय बर्बाद करना बंद करें
Cloudways आपके लिए सर्वर प्रबंधन को संभालता है ताकि आप बेहतरीन ऐप्स बनाने और अपने ग्राहकों को खुश रखने पर ध्यान केंद्रित कर सकें।
मुफ़्त में शुरू करेंपीडीओ के साथ तालिका बनाना
तालिका बनाने के लिए, पहले एक क्वेरी स्ट्रिंग घोषित करें और फिर इसे exec . के साथ निष्पादित करें कार्य करें क्योंकि कोई डेटा वापस नहीं किया जाएगा।
<?php include_once 'connection.php'; try { $database = new Connection(); $db = $database->openConnection(); // sql to create table $sql = "CREATE TABLE `Student` ( `ID` INT NOT NULL AUTO_INCREMENT , `name`VARCHAR(40) NOT NULL , `last_ame` VARCHAR(40) NOT NULL , `email` VARCHAR(40)NOT NULL , PRIMARY KEY (`ID`)) "; // use exec() because no results are returned $db->exec($sql); echo "Table Student created successfully"; $database->closeConnection(); } catch (PDOException $e) { echo "There is some problem in connection: " . $e->getMessage(); } ?>
पीडीओ के साथ डेटा सम्मिलित करना
PDO का उपयोग करके तालिका में डेटा सम्मिलित करने के लिए, पहले तैयार . का उपयोग करके क्वेरी तैयार करें बयान। इसके बाद, इस क्वेरी को निष्पादित . के साथ निष्पादित किया जाता है समारोह। ध्यान दें कि यह अभ्यास SQL इंजेक्शन हमलों को रोकता है।
<?php include_once 'connection.php'; try { $database = new Connection(); $db = $database->openConnection(); // inserting data into create table using prepare statement to prevent from sql injections $stm = $db->prepare("INSERT INTO student (ID,name,last_name,email) VALUES ( :id, :name, :lastname, :email)") ; // inserting a record $stm->execute(array(':id' => 0 , ':name' => 'Saquib' , ':lastname' => 'Rizwan' , ':email' => '[email protected]')); echo "New record created successfully"; } catch (PDOException $e) { echo "There is some problem in connection: " . $e->getMessage(); } ?>
पीडीओ के साथ डेटा चुनें
डेटा का चयन करने के लिए, पहले एक क्वेरी स्ट्रिंग बनाएं और फिर उसे प्रत्येक के लिए . में निष्पादित करें तालिका से रिकॉर्ड लाने के लिए लूप।
<?php include_once 'connection.php'; try { $database = new Connection(); $db = $database->openConnection(); $sql = "SELECT * FROM student " ; foreach ($db->query($sql) as $row) { echo " ID: ".$row['ID'] . "<br>"; echo " Name: ".$row['name'] . "<br>"; echo " Last Name: ".$row['last_name'] . "<br>"; echo " Email: ".$row['email'] . "<br>"; } } catch (PDOException $e) { echo "There is some problem in connection: " . $e->getMessage(); } ?>
पीडीओ के साथ डेटा अपडेट करें
तालिका में किसी रिकॉर्ड को अपडेट करने के लिए, पहले एक क्वेरी स्ट्रिंग घोषित करें और फिर इसे exec के साथ निष्पादित करें समारोह।
<?php include_once 'connection.php'; try { $database = new Connection(); $db = $database->openConnection(); $sql = "UPDATE `student` SET `name`= 'yourname' , `last_name` = 'your lastname' , `email` = 'your email' WHERE `id` = 8" ; $affectedrows = $db->exec($sql); if(isset($affectedrows)) { echo "Record has been successfully updated"; } } catch (PDOException $e) { echo "There is some problem in connection: " . $e->getMessage(); } ?>
पीडीओ के साथ डेटा हटाएं
तालिका से किसी रिकॉर्ड को हटाने के लिए, पहले एक क्वेरी स्ट्रिंग घोषित करें और फिर इसे exec के साथ निष्पादित करें समारोह।
<?php include_once 'connection.php'; try { $database = new Connection(); $db = $database->openConnection(); $sql = "DELETE FROM student WHERE `id` = 8" ; $affectedrows = $db->exec($sql); if(isset($affectedrows)) { echo "Record has been successfully deleted"; } } catch (PDOException $e) { echo "There is some problem in connection: " . $e->getMessage(); } ?>
निष्कर्ष
पीडीओ डेटा एक्सेस करने वाली परत है जो डेटाबेस से जुड़ने और काम करने की प्रक्रिया को बहुत आसान बनाती है। शायद, पीडीओ के बारे में सबसे अच्छी बात डेटाबेस माइग्रेशन की सुव्यवस्थित प्रक्रिया है। यदि आप पुनरावर्तक के साथ अपने पीडीओ प्रश्नों को गति देना चाहते हैं, तो माइकल एंजेलो वैन डैम के इस लेख को देखें।
इस लेख में, मैंने पीडीओ का परिचय दिया और इस बात पर प्रकाश डाला कि आप PHP में पीडीओ का उपयोग करके सीआरयूडी क्रियाएं कैसे कर सकते हैं। मैंने पीडीओ डेटाबेस कनेक्शन की स्थापना का भी प्रदर्शन किया। यदि आपके कोई प्रश्न हैं या चर्चा में जोड़ना चाहते हैं, तो नीचे एक टिप्पणी छोड़ दें।