Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP को MySQL से कैसे कनेक्ट करें

क्या आप सीखना चाहते हैं कि PHP को MySQL से कैसे कनेक्ट करें और विभिन्न प्रकार के डेटाबेस ऑपरेशन कैसे करें? इस लेख में, हम बस यही करेंगे—हम PHP में MySQL डेटाबेस कनेक्टिविटी पर चर्चा करेंगे।

PHP, PHP को MySQL डेटाबेस सर्वर से कनेक्ट करने के विभिन्न तरीके प्रदान करता है। PHP 5.5 तक, सबसे लोकप्रिय तरीकों में से एक MySQL एक्सटेंशन के साथ था - इसने MySQL सर्वर से कनेक्ट करने के लिए एक "प्रक्रियात्मक" तरीका प्रदान किया। हालाँकि, यह एक्सटेंशन PHP 5.5 के रूप में बहिष्कृत है, इसलिए हम उस पर चर्चा नहीं करने जा रहे हैं।

वर्तमान में, आपके दो विकल्प PDO और MySQLi हैं।

PDO (PHP डेटा ऑब्जेक्ट) एक्सटेंशन MySQL सर्वर के साथ विभिन्न प्रकार के अंतर्निहित डेटाबेस सर्वर का समर्थन करता है। और इस प्रकार, यदि आप भविष्य में किसी भी बिंदु पर अंतर्निहित डेटाबेस सर्वर को स्वैप करने का निर्णय लेते हैं तो यह पोर्टेबल है।

दूसरी ओर, MySQLi एक्सटेंशन MySQL सर्वर के लिए विशिष्ट है और बेहतर गति और प्रदर्शन प्रदान करता है। MySQLi एक्सटेंशन को पहली बार में समझना थोड़ा आसान हो सकता है, क्योंकि यह आपको सीधे SQL क्वेरी लिखने देता है। यदि आपने पहले SQL डेटाबेस के साथ काम किया है, तो यह बहुत परिचित होगा। हालाँकि, PDO एक्सटेंशन SQL डेटाबेस से आपके PHP कोड में एक शक्तिशाली मैपिंग बनाता है और आपको SQL या डेटाबेस के विवरण को जानने की आवश्यकता के बिना बहुत सारे डेटाबेस संचालन करने देता है। लंबे समय में और बड़ी परियोजनाओं के लिए, यह बहुत सारे कोडिंग और डिबगिंग प्रयासों को बचा सकता है।

इस पोस्ट में, मैं MySQLi एक्सटेंशन का उपयोग करूँगा। लेकिन आप यहां Envato Tuts+ पर पीडीओ एक्सटेंशन के बारे में अधिक जान सकते हैं।

  • PHP पीडीओ एडवांस्ड सीआरयूडी जेनरेटर टूल सजल सोनी के साथ एक PHP सीआरयूडी इंटरफेस जल्दी से बनाएं

हम इस लेख में निम्नलिखित विषयों को शामिल करेंगे:

  • एक MySQL कनेक्शन बनाना
  • रिकॉर्ड डालना, अपडेट करना और हटाना
  • रिकॉर्ड पुनर्प्राप्त करना

CodeCanyon पर सर्वश्रेष्ठ PHP डेटाबेस स्क्रिप्ट

इस पोस्ट में, मैं आपको दिखाऊंगा कि PHP से MySQL डेटाबेस से बेयर-मेटल कनेक्शन कैसे बनाया जाता है। यह एक महत्वपूर्ण कौशल है, लेकिन यदि आप अपने अगले प्रोजेक्ट पर समय बचाना चाहते हैं, तो आप एक पेशेवर डेटाबेस स्क्रिप्ट में अपग्रेड करना चाह सकते हैं। इससे समय की बचत होगी और आपका काम आसान हो जाएगा।

CodeCanyon पर अब तक बनाई गई सबसे अच्छी और सबसे उपयोगी PHP डेटाबेस स्क्रिप्ट का अन्वेषण करें। कम लागत वाली एकमुश्त भुगतान के साथ, आप इन उच्च-गुणवत्ता वाली वर्डप्रेस थीम को खरीद सकते हैं और अपने और अपने आगंतुकों के लिए अपने वेबसाइट के अनुभव को बेहतर बना सकते हैं।

यहाँ कुछ बेहतरीन PHP डेटाबेस स्क्रिप्ट हैं जो 2020 के लिए CodeCanyon पर उपलब्ध हैं।

  • PHP, PHP डेटाबेस एब्स्ट्रैक्शन लेयर्स और CRUD प्लगइन्स की तुलना करना, सजल सोनी

एक MySQL कनेक्शन बनाएं

इस खंड में, मैं आपको दिखाऊंगा कि आप अपनी PHP स्क्रिप्ट से MySQL सर्वर से कैसे जुड़ सकते हैं और एक कनेक्शन ऑब्जेक्ट बना सकते हैं। बाद में, इस कनेक्शन ऑब्जेक्ट का उपयोग क्वेरी चलाने, आउटपुट लाने और डेटाबेस रिकॉर्ड में हेरफेर करने के लिए किया जाएगा। जैसा कि हमने पहले चर्चा की थी, हम इस लेख के लिए PHP MySQLi एक्सटेंशन का उपयोग करने जा रहे हैं।

MySQLi एक्सटेंशन डेटाबेस संचालन करने के लिए दो अलग-अलग तरीके प्रदान करता है। आप इसे या तो वस्तु-उन्मुख तरीके से या प्रक्रियात्मक तरीके से उपयोग कर सकते हैं, लेकिन जैसा कि यह ट्यूटोरियल शुरुआती लोगों के लिए है, मैं प्रक्रियात्मक तरीके से रहूंगा। यदि आप कुछ वस्तु-उन्मुख स्निपेट देखने में रुचि रखते हैं, तो आप मुझे नीचे टिप्पणी अनुभाग में पिंग कर सकते हैं और मुझे उन्हें प्रदान करने में खुशी होगी।

शुरू करने के लिए, आगे बढ़ें और db_connect.php . बनाएं निम्नलिखित सामग्री के साथ अपने दस्तावेज़ रूट के तहत फ़ाइल करें।

<?php
$mysqli_link = mysqli_connect("{HOST_NAME}", "{DATABASE_USERNAME}", "{DATABASE_PASSWORD}", "{DATABASE_NAME}");

if (mysqli_connect_errno()) 
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

ध्यान दें कि मैंने mysqli_connect . में प्लेसहोल्डर्स का उपयोग किया है फ़ंक्शन—आपको इन्हें वास्तविक मानों से बदलना होगा।

आइए प्रत्येक प्लेसहोल्डर के माध्यम से देखें कि इसका क्या अर्थ है।

  • {HOST_NAME} :यह आपके MySQL सर्वर के होस्ट-नाम या IP पते का प्रतिनिधित्व करता है। यदि आपने PHP के साथ उसी सिस्टम पर MySQL सर्वर स्थापित किया है, तो आपको localhost . का उपयोग करना चाहिए या 127.0.0.1 . दूसरी ओर, यदि आप बाहरी रूप से होस्ट किए गए MySQL सर्वर का उपयोग कर रहे हैं, तो आप संबंधित होस्ट-नाम या IP पते का उपयोग कर सकते हैं।
  • {DATABASE_USERNAME} :यह आपके MySQL उपयोगकर्ता के उपयोगकर्ता नाम का प्रतिनिधित्व करता है। मूल रूप से, यह वह उपयोगकर्ता नाम है जिसका उपयोग आप अपने MySQL सर्वर से कनेक्ट करने के लिए करते हैं।
  • {DATABASE_PASSWORD} :यह आपके MySQL उपयोगकर्ता के पासवर्ड का प्रतिनिधित्व करता है। दोबारा, यह वह पासवर्ड है जिसका उपयोग आप MySQL उपयोगकर्ता नाम के साथ अपने MySQL सर्वर से कनेक्ट करने के लिए करते हैं।
  • {DATABASE_NAME} :यह MySQL डेटाबेस का नाम है जिससे आप कनेक्ट करना चाहते हैं। एक बार कनेक्शन बन जाने के बाद, आप आगे के संचालन के लिए इस डेटाबेस को क्वेरी करेंगे।

आगे बढ़ें और इन प्लेसहोल्डर्स को वास्तविक मानों से बदलें। मेरे मामले में, मैंने स्थानीय रूप से MySQL सर्वर स्थापित किया है, और मेरे पास tutsplus-demo-user के साथ एक MySQL उपयोगकर्ता है। MySQL उपयोगकर्ता नाम और tutsplus-demo-password . के रूप में MySQL पासवर्ड के रूप में। और इसके साथ, उपरोक्त उदाहरण इस तरह दिखता है:

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno()) 
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

यदि आप इस उदाहरण को चलाते हैं, तो इसे एक डेटाबेस कनेक्शन लिंक बनाना चाहिए और इसे $mysqli_link को असाइन करना चाहिए चर, जिसका उपयोग हम बाद में विभिन्न प्रकार के डेटाबेस संचालन करने के लिए करेंगे।

दूसरी ओर, यदि कनेक्शन सेट करने में कोई समस्या आती है, तो  mysqli_connect_errno फ़ंक्शन एक त्रुटि कोड लौटाएगा, और mysqli_connect_error फ़ंक्शन वास्तविक त्रुटि प्रदर्शित करेगा। उपरोक्त उदाहरण में, हमने इसका उपयोग डिबगिंग उद्देश्यों के लिए किया है।

अब, हमारे पास MySQL सर्वर से एक सफल कनेक्शन है, और हम देखेंगे कि अगले भाग से विभिन्न प्रकार के प्रश्नों को करने के लिए इसका उपयोग कैसे किया जाए।

रिकॉर्ड कैसे डालें

पिछले भाग में, हमने चर्चा की थी कि mysqli_connect . का उपयोग कैसे करें MySQL सर्वर के साथ डेटाबेस कनेक्शन स्थापित करने के लिए कार्य करता है। इस खंड में, हम आगे बढ़ेंगे और चर्चा करेंगे कि INSERT करने के लिए कनेक्शन ऑब्जेक्ट का उपयोग कैसे करें प्रश्न।

यदि आप इस आलेख में चर्चा किए गए उदाहरणों के साथ अनुसरण करना चाहते हैं, तो आपको अपने डेटाबेस में निम्न MySQL तालिका बनानी होगी। यह वह तालिका है जिसका उपयोग हम अब से सभी उदाहरणों में करने जा रहे हैं।

CREATE TABLE `students` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `last_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

आगे बढ़ें और phpMyAdmin सॉफ़्टवेयर या कमांड-लाइन टूल का उपयोग करके उपरोक्त MySQL तालिका बनाएं।

इसके बाद, db_insert.php बनाते हैं निम्नलिखित सामग्री के साथ फाइल करें। कृपया कनेक्शन पैरामीटर को अपने पैरामीटर से बदलना न भूलें।

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$insert_query = "INSERT INTO students(`first_name`,`last_name`,`email`)
VALUES ('". mysqli_real_escape_string($mysqli_link, 'John') ."','". mysqli_real_escape_string($mysqli_link, 'Wood') ."','". mysqli_real_escape_string($mysqli_link, '[email protected]') ."')";
 
// run the insert query
If (mysqli_query($mysqli_link, $insert_query)) {
    echo 'Record inserted successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

सबसे पहले, हम mysqli_connect . का उपयोग करके एक डेटाबेस कनेक्शन सेट करते हैं समारोह, जैसा कि हमने पहले चर्चा की थी। उसके बाद, हमने सम्मिलित क्वेरी तैयार की है जिसे हम बाद में निष्पादित करने जा रहे हैं। यह नोट करना महत्वपूर्ण है कि हमने mysqli_real_escape_string का उपयोग किया है स्ट्रिंग मानों से बचने के लिए फ़ंक्शन जो हम सम्मिलित क्वेरी में उपयोग करने जा रहे हैं। विशेष रूप से, आपको इस फ़ंक्शन का उपयोग तब करना चाहिए जब आप $_POST . के माध्यम से सबमिट किए गए मानों के साथ काम कर रहे हों SQL इंजेक्शन से बचने के लिए चर।

अंत में, हमने mysqli_query . का उपयोग किया है फ़ंक्शन, जो दो तर्क लेता है। पहला तर्क सक्रिय कनेक्शन लिंक है जहां क्वेरी निष्पादित की जाएगी। और दूसरा तर्क MySQL क्वेरी है जिसे हम निष्पादित करना चाहते हैं। mysqli_query फ़ंक्शन TRUE लौटाता है यदि क्वेरी सफलतापूर्वक निष्पादित की गई थी।

अंत में, हमने mysqli_close . का उपयोग किया है सक्रिय डेटाबेस कनेक्शन को बंद करने के लिए कार्य। डेटाबेस संचालन के साथ समाप्त होने के बाद डेटाबेस कनेक्शन को बंद करना एक अच्छा अभ्यास है।

आगे बढ़ो और स्क्रिप्ट चलाओ, और यह students . में एक रिकॉर्ड सम्मिलित करना चाहिए टेबल!

रिकॉर्ड कैसे अपडेट करें

PHP स्क्रिप्ट से डेटाबेस में रिकॉर्ड्स को अपडेट करना इंसर्ट ऑपरेशन के समान है; अंतर केवल इतना है कि क्वेरी सम्मिलित क्वेरी के बजाय अद्यतन क्वेरी होगी।

आइए उपरोक्त उदाहरण को संशोधित करें और first_name . को अपडेट करें फ़ील्ड, जैसा कि निम्न उदाहरण में दिखाया गया है।

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$update_query = "UPDATE students SET `first_name` = '". mysqli_real_escape_string($mysqli_link,'Johnny') ."' WHERE `email` = '[email protected]'";
 
// run the update query
If (mysqli_query($mysqli_link, $update_query)) {
    echo 'Record updated successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

आगे बढ़ें और स्क्रिप्ट चलाएँ, और इससे students . में रिकॉर्ड अपडेट होना चाहिए टेबल।

रिकॉर्ड कैसे चुनें

पिछले अनुभागों में, हमने चर्चा की थी कि आप PHP स्क्रिप्ट से डेटाबेस में रिकॉर्ड कैसे सम्मिलित और अद्यतन कर सकते हैं। इस खंड में, हम यह पता लगाएंगे कि आप विभिन्न प्रकार के MySQLi कार्यों का उपयोग करके डेटाबेस से रिकॉर्ड कैसे प्राप्त कर सकते हैं।

सबसे पहले, आपको mysqli_query . का उपयोग करना होगा चयन क्वेरी निष्पादित करने के लिए कार्य। चयनित क्वेरी के सफल निष्पादन पर, mysqli_query फ़ंक्शन mysqli परिणाम ऑब्जेक्ट देता है, जिसका उपयोग हम चुनिंदा क्वेरी द्वारा लौटाए गए रिकॉर्ड पर पुनरावृति करने के लिए कर सकते हैं। जब MySQLi परिणाम ऑब्जेक्ट से रिकॉर्ड लाने और पुनरावृति करने की बात आती है, तो विभिन्न कार्य उपलब्ध होते हैं।

  • mysqli_fetch_all :यह आपको सभी परिणाम पंक्तियों को एक साथ लाने की अनुमति देता है। आप यह भी निर्दिष्ट कर सकते हैं कि क्या आप एक सहयोगी सरणी, एक संख्यात्मक सरणी, या दोनों के रूप में परिणाम चाहते हैं।
  • mysqli_fetch_array :यह आपको एक बार में एक पंक्ति को पुनः प्राप्त करने की अनुमति देता है। और इस प्रकार, आपको सभी रिकॉर्डों पर पुनरावृति करने के लिए लूप का उपयोग करना होगा। फिर से, आप निर्दिष्ट कर सकते हैं कि क्या आप परिणाम पंक्ति को एक सहयोगी सरणी, एक संख्यात्मक सरणी, या दोनों के रूप में चाहते हैं।
  • mysqli_fetch_assoc :यह सहयोगी सरणी के रूप में एक बार में एक परिणाम पंक्ति प्राप्त करता है।
  • mysqli_fetch_object :यह एक वस्तु के रूप में एक बार में एक परिणाम पंक्ति प्राप्त करता है।

यह कैसे काम करता है, इसे समझने के लिए आइए निम्नलिखित उदाहरण पर एक नज़र डालें:

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$select_query = "SELECT * FROM students LIMIT 10";
$result = mysqli_query($mysqli_link, $select_query);

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo "First Name:" . $row['first_name'] . "<br/>";
    echo "Last Name:" . $row['last_name'] . "<br/>";
    echo "Email:" . $row['email'] . "<br/>";
    echo "<br/>";
}

// close the db connection
mysqli_close($mysqli_link);
?>

जैसा कि आप देख सकते हैं, हमने mysqli_fetch_array . का उपयोग किया है MYSQLI_ASSOC के साथ कार्य करें दूसरे तर्क के रूप में विकल्प। और इस प्रकार, यह परिणाम पंक्ति को एक सहयोगी सरणी के रूप में देता है। यदि आप MYSQLI_NUM का उपयोग करते हैं विकल्प, आप इसे $row[0] . की तरह एक्सेस करेंगे , $row[1] और $row[2] उपरोक्त उदाहरण में।

दूसरी ओर, यदि आप mysqli_fetch_object . का उपयोग करते हैं उपरोक्त उदाहरण में फ़ंक्शन, आप निम्न स्निपेट में दिखाए गए मानों तक पहुंच सकते हैं। संक्षिप्तता के लिए, मैं केवल जबकि लूप स्निपेट शामिल करूंगा।

…
…
while ($row = mysqli_fetch_object($result)) {
    echo "First Name:" . $row->first_name . "<br/>";
    echo "Last Name:" . $row->last_name . "<br/>";
    echo "Email:" . $row->email . "<br/>";
    echo "<br/>";
}
...
...

तो इस तरह, आप MySQLi डेटाबेस से रिकॉर्ड ला सकते हैं और प्रदर्शित कर सकते हैं।

रिकॉर्ड कैसे मिटाएं

इस खंड में, हम देखेंगे कि PHP स्क्रिप्ट से डिलीट क्वेश्चन कैसे चलाएं। डेटाबेस से रिकॉर्ड हटाना एक बहुत ही सरल ऑपरेशन है क्योंकि आपको केवल डिलीट क्वेरी तैयार करने और इसे mysqli_query के साथ चलाने की आवश्यकता है। समारोह।

यह कैसे काम करता है, यह देखने के लिए आइए निम्नलिखित उदाहरण देखें।

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$delete_query = "DELETE FROM students WHERE `email` = '[email protected]'";
 
// run the update query
If (mysqli_query($mysqli_link, $delete_query)) {
    echo 'Record deleted successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

जैसा कि आप देख सकते हैं, सब कुछ वैसा ही है जैसा हमने पहले ही इंसर्ट और अपडेट उदाहरणों के साथ देखा है, सिवाय इसके कि इस मामले में क्वेरी एक डिलीट क्वेरी है।

तो इस प्रकार आप PHP स्क्रिप्ट से विभिन्न प्रकार के डेटाबेस संचालन कर सकते हैं।

और इसके साथ ही, हम इस ट्यूटोरियल के अंत में पहुँच गए हैं। आज तक हमने जो चर्चा की है, वह आपको डेटाबेस कनेक्टिविटी अवधारणाओं को मजबूत करने में मदद करनी चाहिए, विशेष रूप से PHP को MySQL से कैसे कनेक्ट करें और विभिन्न प्रकार के संचालन करें।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 सबसे हाल के रिकॉर्ड का चयन करें जहां एक कॉलम के मान अलग हैं

  2. एकल SQL क्वेरी में एकाधिक पंक्तियाँ कैसे सम्मिलित करें - सप्ताह का साक्षात्कार प्रश्न #069

  3. PHP के साथ MySQL डेटाटाइम से दूसरे प्रारूप में कनवर्ट करें

  4. किसी अन्य तालिका में पंक्ति सम्मिलित करने के लिए MySQL ट्रिगर कैसे प्रोग्राम करें?

  5. MySQL परिवर्तन संग्रहीत प्रक्रिया