PHP MySQL से कनेक्ट करें
PHP 5 और बाद के संस्करण एक MySQL डेटाबेस के साथ काम कर सकते हैं:
- MySQLi एक्सटेंशन ("i" बेहतर के लिए खड़ा है)
- पीडीओ (PHP डेटा ऑब्जेक्ट)
PHP के पुराने संस्करणों में MySQL एक्सटेंशन का उपयोग किया जाता था। हालाँकि, इस एक्सटेंशन को 2012 में हटा दिया गया था।
क्या मुझे MySQLi या PDO का उपयोग करना चाहिए?
यदि आपको एक संक्षिप्त उत्तर की आवश्यकता है, तो वह होगा "जो भी आपको पसंद हो"।
MySQLi और PDO दोनों के अपने फायदे हैं:
PDO 12 अलग-अलग डेटाबेस सिस्टम पर काम करेगा, जबकि MySQLi केवल MySQL डेटाबेस के साथ काम करेगा।
इसलिए, यदि आपको किसी अन्य डेटाबेस का उपयोग करने के लिए अपनी परियोजना को बदलना है, तो पीडीओ प्रक्रिया को आसान बनाता है। आपको केवल कनेक्शन स्ट्रिंग और कुछ प्रश्नों को बदलना होगा। MySQLi के साथ, आपको संपूर्ण कोड - प्रश्नों को फिर से लिखना होगा।
दोनों वस्तु-उन्मुख हैं, लेकिन MySQLi एक प्रक्रियात्मक API भी प्रदान करता है।
दोनों तैयार वक्तव्य का समर्थन करते हैं। तैयार विवरण SQL इंजेक्शन से रक्षा करते हैं, और वेब अनुप्रयोग सुरक्षा के लिए बहुत महत्वपूर्ण हैं।
MySQLi और PDO सिंटैक्स दोनों में MySQL उदाहरण
इसमें और निम्नलिखित अध्यायों में हम PHP और MySQL के साथ काम करने के तीन तरीके प्रदर्शित करते हैं:
- MySQLi (वस्तु-उन्मुख)
- MySQLi (प्रक्रियात्मक)
- पीडीओ
MySQLi स्थापना
Linux और Windows के लिए: अधिकांश मामलों में MySQLi एक्सटेंशन स्वचालित रूप से स्थापित हो जाता है, जब php5 mysql पैकेज स्थापित होता है।
स्थापना विवरण के लिए, यहां जाएं: http://php.net/manual/en/mysqli.installation.php
पीडीओ स्थापना
स्थापना विवरण के लिए, यहां जाएं: http://php.net/manual/en/pdo.installation.php
MySQL के लिए एक कनेक्शन खोलें
इससे पहले कि हम MySQL डेटाबेस में डेटा एक्सेस कर सकें, हमें सर्वर से कनेक्ट करने में सक्षम होना चाहिए:
उदाहरण (MySQLi ऑब्जेक्ट-ओरिएंटेड)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
उपरोक्त वस्तु-उन्मुख उदाहरण पर ध्यान दें:
PHP 5.2.9 और 5.3.0 तक $connect_error टूटा हुआ था। यदि आपको 5.2.9 और 5.3.0 से पहले PHP संस्करणों के साथ संगतता सुनिश्चित करने की आवश्यकता है, तो इसके बजाय निम्न कोड का उपयोग करें:
// कनेक्शन जांचें
अगर (mysqli_connect_error ()) {
die ("डेटाबेस कनेक्शन विफल:"। mysqli_connect_error ());
}
उदाहरण (MySQLi प्रक्रियात्मक)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
उदाहरण (पीडीओ)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
नोट: उपरोक्त पीडीओ उदाहरण में हमने एक डेटाबेस (myDB) भी निर्दिष्ट किया है । पीडीओ को कनेक्ट करने के लिए एक वैध डेटाबेस की आवश्यकता है। यदि कोई डेटाबेस निर्दिष्ट नहीं है, तो एक अपवाद फेंक दिया जाता है।
युक्ति: पीडीओ का एक बड़ा लाभ यह है कि इसमें हमारे डेटाबेस प्रश्नों में होने वाली किसी भी समस्या को संभालने के लिए एक अपवाद वर्ग है। यदि try{ } ब्लॉक में एक अपवाद फेंका जाता है, तो स्क्रिप्ट निष्पादित करना बंद कर देती है और सीधे पहले कैच () {} ब्लॉक में प्रवाहित हो जाती है।
कनेक्शन बंद करें
स्क्रिप्ट समाप्त होने पर कनेक्शन अपने आप बंद हो जाएगा। पहले कनेक्शन बंद करने के लिए, निम्न का उपयोग करें:
MySQLi ऑब्जेक्ट-ओरिएंटेड:
$conn->close();
MySQLi प्रक्रियात्मक:
mysqli_close($conn);
पीडीओ:
$conn = null;