PHP MySQLi फ़ंक्शन: mysqli_query और mysqli_connect
⚡ स्मार्ट सारांश
MySQLPHP और अन्य डेटाबेस एक्सेस विधियों की मदद से PHP स्क्रिप्ट डेटाबेस से कनेक्ट हो सकती है, क्वेरी चला सकती है और परिणाम पढ़ सकती है। इस विस्तृत गाइड में मुख्य mysqli फ़ंक्शन, CRUD के पूर्ण उदाहरण, सुरक्षा के लिए तैयार स्टेटमेंट और वैकल्पिक PDO और ODBC एक्सेस विधियों को शामिल किया गया है।
PHP में हेरफेर करने के लिए अंतर्निहित कार्यों का एक समृद्ध संग्रह है। MySQL डेटाबेस।
PHP mysqli_connect फ़ंक्शन
PHP का mysqli_connect फ़ंक्शन किसी सिस्टम से कनेक्ट करने के लिए उपयोग किया जाता है। MySQL डेटाबेस सर्वर।
इसका वाक्यविन्यास इस प्रकार है।
<?php $db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password); ?>
यहाँ,
- “$db_handle” डेटाबेस कनेक्शन संसाधन चर है।
- “mysqli_connect(…)” PHP डेटाबेस कनेक्शन के लिए फ़ंक्शन है।
- “$db_server_name” सर्वर का नाम या IP पता है जो डेटा होस्ट करता है। MySQL सर्वर.
- “$db_user_name” एक मान्य उपयोगकर्ता नाम है MySQL सर्वर.
- “$db_password” उपयोगकर्ता नाम से जुड़ा एक वैध पासवर्ड है। MySQL सर्वर.
PHP mysqli_select_db फ़ंक्शन
mysqli_select_db फ़ंक्शन का उपयोग डेटाबेस का चयन करने के लिए किया जाता है।
इसका वाक्यविन्यास इस प्रकार है।
<?php mysqli_select_db($db_handle, $database_name); ?>
यहाँ,
- “mysqli_select_db(…)” डेटाबेस चयन फ़ंक्शन है जो सत्य या असत्य लौटाता है
- “$db_handle” सर्वर कनेक्शन लिंक है
- “$database_name” डेटाबेस का नाम है
PHP mysqli_query फ़ंक्शन
mysqli_query फ़ंक्शन का उपयोग निष्पादित करने के लिए किया जाता है एसक्यूएल प्रश्नों।
इस फ़ंक्शन का उपयोग निम्नलिखित प्रकार की क्वेरी को निष्पादित करने के लिए किया जा सकता है:
- सम्मिलित करें
- चुनते हैं
- अपडेट
- मिटाना
इसका वाक्यविन्यास इस प्रकार है।
<?php mysqli_query($db_handle, $query); ?>
यहाँ,
- “mysqli_query(…)” वह फ़ंक्शन है जो SQL क्वेरीज़ को निष्पादित करता है।
- “$db_handle” सर्वर कनेक्शन लिंक है
- “$query” निष्पादित की जाने वाली SQL क्वेरी है
PHP mysqli_num_rows फ़ंक्शन
mysqli_num_rows फ़ंक्शन का उपयोग किसी चयनित क्वेरी से लौटाई गई पंक्तियों की संख्या प्राप्त करने के लिए किया जाता है।
इसका वाक्यविन्यास इस प्रकार है।
<?php mysqli_num_rows($result); ?>
यहाँ,
- “mysqli_num_rows(…)” पंक्ति गणना फ़ंक्शन है
- “$result” mysqli_query परिणाम सेट है
PHP mysqli_fetch_array फ़ंक्शन
mysqli_fetch_array फ़ंक्शन का उपयोग क्वेरी परिणाम सेट से पंक्ति सरणियों को प्राप्त करने के लिए किया जाता है।
इसका वाक्यविन्यास इस प्रकार है।
<?php mysqli_fetch_array($result); ?>
यहाँ,
- “mysqli_fetch_array(…)” पंक्ति सरणियाँ लाने के लिए फ़ंक्शन है
- “$result” mysqli_query फ़ंक्शन द्वारा लौटाया गया परिणाम है।
PHP mysqli_close फ़ंक्शन
mysqli_close फ़ंक्शन का उपयोग किसी खुले डेटाबेस कनेक्शन को बंद करने के लिए किया जाता है।
इसका वाक्यविन्यास इस प्रकार है।
<?php mysqli_close($db_handle); ?>
यहाँ,
- “mysqli_close(…)” PHP का वह फ़ंक्शन है जो कनेक्शन को बंद करता है।
- “$db_handle” सर्वर कनेक्शन संसाधन है।
PHP MySQL CRUD उदाहरण
आइए इन कार्यों का लाभ उठाने वाले व्यावहारिक उदाहरणों को देखें। यह ट्यूटोरियल निम्नलिखित के ज्ञान को मानता है: MySQL और SQL; यदि ये शब्द आपके लिए अपरिचित हैं, तो कृपया हमारे दिशानिर्देश देखें। MySQL और एसक्यूएल ट्यूटोरियल.
हम my_personal_contacts नाम से एक साधारण डेटाबेस बनाएंगे जिसमें केवल एक ही टेबल होगी। इससे कनेक्ट करें। MySQL अपने पसंदीदा एक्सेस टूल का उपयोग करना जैसे MySQL वर्कबेंच या phpMyAdmin में, my_personal_contacts नाम का एक डेटाबेस बनाएं, फिर टेबल बनाने और कुछ डमी डेटा डालने के लिए नीचे दिखाए गए स्क्रिप्ट को चलाएं।
CREATE TABLE IF NOT EXISTS `my_contacts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `full_names` varchar(255) NOT NULL, `gender` varchar(6) NOT NULL, `contact_no` varchar(75) NOT NULL, `email` varchar(255) NOT NULL, `city` varchar(255) NOT NULL, `country` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; INSERT INTO `my_contacts` (`id`, `full_names`, `gender`, `contact_no`, `email`, `city`, `country`) VALUES (1, 'Zeus', 'Male', '111', 'zeus@olympus.mt.co', 'Agos', 'Greece'), (2, 'Anthena', 'Female', '123', 'anthena@olympus.mt.co', 'Athens', 'Greece'), (3, 'Jupiter', 'Male', '783', 'jupiter@planet.pt.co', 'Rome', 'Italy'), (4, 'Venus', 'Female', '987', 'venus@planet.pt.co', 'Mars', 'Italy');
डेटाबेस से रिकॉर्ड पढ़ना
अब हम एक ऐसा प्रोग्राम बनाएंगे जो डेटाबेस से रिकॉर्ड प्रिंट करेगा।
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); // connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_connect_error()); if (!mysqli_select_db($dbh, 'my_personal_contacts')) die("Unable to select database: " . mysqli_error($dbh)); $sql_stmt = "SELECT * FROM my_contacts"; // SQL select query $result = mysqli_query($dbh, $sql_stmt); // execute SQL statement if (!$result) die("Database access failed: " . mysqli_error($dbh)); $rows = mysqli_num_rows($result); // get number of rows returned if ($rows) { while ($row = mysqli_fetch_array($result)) { echo 'ID: ' . $row['id'] . '<br>'; echo 'Full Names: ' . $row['full_names'] . '<br>'; echo 'Gender: ' . $row['gender'] . '<br>'; echo 'Contact No: ' . $row['contact_no'] . '<br>'; echo 'Email: ' . $row['email'] . '<br>'; echo 'City: ' . $row['city'] . '<br>'; echo 'Country: ' . $row['country'] . '<br><br>'; } } mysqli_close($dbh); // close the database connection ?>
उपरोक्त कोड को निष्पादित करने पर नीचे दिए गए आरेख में दिखाए गए परिणाम प्राप्त होते हैं।
नए रिकॉर्ड सम्मिलित करना
आइए अब एक उदाहरण देखें जो हमारी तालिका में एक नया रिकॉर्ड जोड़ता है। नीचे दिया गया कोड इसका क्रियान्वयन दर्शाता है।
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); // connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_connect_error()); if (!mysqli_select_db($dbh, 'my_personal_contacts')) die("Unable to select database: " . mysqli_error($dbh)); $sql_stmt = "INSERT INTO `my_contacts` (`full_names`,`gender`,`contact_no`,`email`,`city`,`country`)"; $sql_stmt .= " VALUES(7,8,9,10,11,12)"; $result = mysqli_query($dbh, $sql_stmt); // execute SQL statement if (!$result) die("Adding record failed: " . mysqli_error($dbh)); echo "Poseidon has been successfully added to your contacts list"; mysqli_close($dbh); // close the database connection ?>
उपरोक्त कोड को चलाने पर "पोसाइडन को आपकी संपर्क सूची में सफलतापूर्वक जोड़ दिया गया है" आउटपुट दिखाई देगा। सेलेक्ट क्वेरी के उदाहरण पर वापस जाएं और अपने संपर्कों को दोबारा प्राप्त करके देखें कि पोसाइडन आपकी सूची में जुड़ गया है या नहीं।
रिकॉर्ड अपडेट किए जा रहे हैं
आइए अब डेटाबेस में एक रिकॉर्ड को अपडेट करने का उदाहरण देखें। मान लीजिए कि पोसीडॉन ने अपना संपर्क नंबर और ईमेल पता बदल दिया है।
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); // connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_connect_error()); if (!mysqli_select_db($dbh, 'my_personal_contacts')) die("Unable to select database: " . mysqli_error($dbh)); $sql_stmt = "UPDATE `my_contacts` SET `contact_no` = 8, `email` = 9"; $sql_stmt .= " WHERE `id` = 5"; // SQL update query $result = mysqli_query($dbh, $sql_stmt); // execute SQL statement if (!$result) die("Updating record failed: " . mysqli_error($dbh)); echo "ID number 5 has been successfully updated"; mysqli_close($dbh); // close the database connection ?>
रिकॉर्ड हटाना
आइए अब डेटाबेस से रिकॉर्ड हटाने का एक उदाहरण देखते हैं। मान लीजिए कि वीनस ने हमारे खिलाफ निषेधाज्ञा जारी करवाई है, और हमें उसकी संपर्क जानकारी अपने डेटाबेस से हटानी होगी। डेटाबेस.
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); // connect to MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_connect_error()); if (!mysqli_select_db($dbh, 'my_personal_contacts')) die("Unable to select database: " . mysqli_error($dbh)); $id = 4; // Venus's ID in the database $sql_stmt = "DELETE FROM `my_contacts` WHERE `id` = $id"; // SQL delete query $result = mysqli_query($dbh, $sql_stmt); // execute SQL statement if (!$result) die("Deleting record failed: " . mysqli_error($dbh)); echo "ID number $id has been successfully deleted"; mysqli_close($dbh); // close the database connection ?>
प्रिपेयर्ड स्टेटमेंट्स का उपयोग करके SQL इंजेक्शन को रोकना
ऊपर दिए गए CRUD उदाहरणों में स्ट्रिंग को जोड़कर क्वेरी बनाई जाती है। जब क्वेरी का कोई भी हिस्सा उपयोगकर्ता द्वारा इनपुट किया जाता है, तो इससे SQL इंजेक्शन का खतरा बढ़ जाता है। प्रिपेयर्ड स्टेटमेंट इस समस्या को हल करते हैं क्योंकि वे क्वेरी और डेटा को अलग-अलग भेजते हैं, जिससे इनपुट कभी भी क्वेरी संरचना को नहीं बदल सकता।
<?php $dbh = mysqli_connect('localhost', 'root', 'melody'); $stmt = mysqli_prepare($dbh, "INSERT INTO my_contacts (full_names, email) VALUES (?, ?)"); mysqli_stmt_bind_param($stmt, "ss", $name, $email); $name = 'Poseidon'; $email = 'poseidon@sea.oc'; mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); mysqli_close($dbh); ?>
यहां प्रश्न चिह्न प्लेसहोल्डर हैं, और bind_param नाम और ईमेल मानों को सुरक्षित रूप से बाइंड करता है। डेटाबेस इन्हें पूरी तरह से डेटा के रूप में मानता है, यही कारण है कि mysqli और PDO दोनों में उपलब्ध प्रिपेयर्ड स्टेटमेंट, उपयोगकर्ता इनपुट का उपयोग करने वाले किसी भी क्वेरी को चलाने का अनुशंसित तरीका है।
पीएचपी डेटा एक्सेस ऑब्जेक्ट (पीडीओ)
PDO एक क्लास है जो हमें विभिन्न डेटाबेस इंजनों जैसे कि MySQL, PostgreSQLऔर एमएस एसक्यूएल सर्वर एक ही इंटरफेस का उपयोग कर रहे हैं।
नीचे दिया गया कोड PDO ऑब्जेक्ट का उपयोग करके डेटाबेस एक्सेस विधि दिखाता है।
नोट: नीचे दिए गए कोड के लिए SQL भाषा, एरे, एक्सेप्शन हैंडलिंग और फोरईच लूप का ज्ञान होना आवश्यक है।
<?php try { $pdo = new PDO("mysql:host=localhost;dbname=my_personal_contacts", 'root', 'melody'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->exec('SET NAMES "utf8"'); $sql_stmt = "SELECT * FROM `my_contacts`"; $result = $pdo->query($sql_stmt); $result->setFetchMode(PDO::FETCH_ASSOC); $data = array(); foreach ($result as $row) { $data[] = $row; } print_r($data); } catch (PDOException $e) { echo $e->getMessage(); } ?>
यहाँ,
- “try{…}catch{…}” अपवाद प्रबंधन ब्लॉक है।
- “$pdo = new PDO(“mysql…” PDO ऑब्जेक्ट का एक इंस्टेंस बनाता है और डेटाबेस ड्राइवर, सर्वर और डेटाबेस नाम, उपयोगकर्ता आईडी और पासवर्ड पास करता है।
- “$pdo->setAttribute…” PDO त्रुटि मोड को अपवाद उत्पन्न करने के लिए सेट करता है।
- “$pdo->exec('SET NAMES…” एन्कोडिंग प्रारूप सेट करता है
PHP ODBC डेटा एक्सेस
ODBC ओपन डेटाबेस कनेक्टिविटी का संक्षिप्त रूप है। इसका मूल सिंटैक्स निम्नलिखित है।
<?php $conn = odbc_connect($dsn, $user_name, $password); ?>
यहाँ,
- “odbc_connect” PHP का एक अंतर्निहित फ़ंक्शन है।
- “$dsn” ODBC डेटा स्रोत का नाम है.
- “$user_name” वैकल्पिक है और इसका उपयोग ODBC उपयोगकर्ता नाम के लिए किया जाता है।
- “$password” वैकल्पिक है और इसका उपयोग ODBC पासवर्ड के लिए किया जाता है।
नीचे दिए गए उदाहरण में यह माना गया है कि आप इसका उपयोग कर रहे हैं Windows और नॉर्थविंड के लिए एक ODBC लिंक बनाया है। Microsoft नॉर्थविंड नामक डेटाबेस तक पहुंचें।
<?php $dbh = odbc_connect('northwind', '', ''); if (!$dbh) { exit("Connection Failed: " . $dbh); } $sql_stmt = "SELECT * FROM customers"; $result = odbc_exec($dbh, $sql_stmt); if (!$result) { exit("Error accessing records"); } while (odbc_fetch_row($result)) { $company_name = odbc_result($result, "CompanyName"); $contact_name = odbc_result($result, "ContactName"); echo "<b>Company Name (Contact Person):</b> $company_name ($contact_name) <br>"; } odbc_close($dbh); ?>


