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

PHP और MySQL का उपयोग करके CSV फ़ाइलों को आयात और निर्यात कैसे करें

PHP का व्यापक रूप से वेब ऐप्स से लेकर एंटरप्राइज़ स्तर के एप्लिकेशन तक के उत्पादों की एक विस्तृत श्रृंखला के निर्माण के लिए उपयोग किया जाता है। कुशल PHP कोड की कुंजी उचित वर्कफ़्लो का पालन करना और प्रक्रियाओं को स्वचालित करना है। परिणाम उच्च गुणवत्ता और बग-मुक्त कोड है।

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

डेटाबेस में और से डेटा का आयात और निर्यात PHP विकास में एक सामान्य पर्याप्त प्रक्रिया है। एक अन्य महत्वपूर्ण गतिविधि डेटाबेस का बैकअप और स्थानांतरण है।

इस लेख में, मैं समझाऊंगा कि CSV फ़ाइलों से MySQL और इसके विपरीत तालिकाओं को कैसे सहेजना है। सर्वर और PHPstack एप्लिकेशन लॉन्च करने के लिए आपको Cloudways पर साइनअप करना होगा। साइन अप करने से पहले, AWS, DigitalOcean, Linode, Vultr और GCP जैसे विश्व स्तरीय होस्टिंग प्रदाताओं के सभी मूल्य निर्धारण विकल्पों को देखना एक अच्छा विचार है, ताकि आप अपनी आवश्यकताओं के लिए पूरी तरह से फिट होने वाले को ढूंढ सकें।

PHP होस्टिंग:सर्वश्रेष्ठ PHP 7 और PHP 5.6 वेब होस्टिंग

MySQL में डेटाबेस बनाएं

इस ट्यूटोरियल में पहला कदम एक MySQL डेटाबेस का निर्माण है। चूँकि Cloudways उस प्लेटफ़ॉर्म में कस्टम mysql प्रबंधक प्रदान करता है जिसमें ऐप के लिए एक डेटाबेस होता है। आप SQL क्वेरी चलाकर टेबल बना सकते हैं। एक टेबल बनाएं `कर्मचारी जानकारी` निम्नलिखित SQL क्वेरी का उपयोग कर डेटाबेस में।

CREATE TABLE employeeinfo(
emp_id VARCHAR(50) UNSIGNED PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date VARCHAR(50)
)

यह एक नई तालिका `कर्मचारी जानकारी` create बनाएगा डेटाबेस में। मैं इस तालिका का उपयोग CSV फ़ाइल से डेटा सम्मिलित करने के लिए करूँगा।


सर्वर पर समय बर्बाद करना बंद करें

Cloudways आपके लिए सर्वर प्रबंधन को संभालता है ताकि आप बेहतरीन ऐप्स बनाने और अपने ग्राहकों को खुश रखने पर ध्यान केंद्रित कर सकें।

नि:शुल्क प्रारंभ करें

PHP में MySql कनेक्शन बनाएं

MySql में डेटाबेस आयात और निर्यात करने के लिए एक अलग फ़ाइल `config.php` बनाएगी। निम्नलिखित कोड जोड़ें और डेटाबेस क्रेडेंशियल्स को अपने साथ बदलें। आप अपने डीबी क्रेडेंशियल एप्लिकेशन एक्सेस विवरण में पा सकते हैं:

<?php
function getdb(){
$servername = "localhost";
$username = "huscqxzwaw";
$password = "2WWKxxxxHr";
$db = "huscqxzwaw";

try {
   
    $conn = mysqli_connect($servername, $username, $password, $db);
     //echo "Connected successfully"; 
    }
catch(exception $e)
    {
    echo "Connection failed: " . $e->getMessage();
    }
    return $conn;
}
?>

संबंधित: MySQL डेटाबेस को PHP वेबसाइटों से कैसे कनेक्ट करें

PHP में CSV को MySQL में आयात करें

डेटाबेस बन जाने के बाद, मुझे अगली बार एक HTML फ़ाइल की आवश्यकता होगी जो CSV फ़ाइल अपलोड कर सके। इस HTML फ़ाइल के लिए, मैं एक साधारण बूटस्ट्रैप रूप में HTML फ़ाइल अपलोडर का उपयोग करूँगा।

एक फ़ाइल बनाएं और उसे `index.php`  . नाम दें . यह CSV फ़ाइल अपलोड करने का एक सरल रूप है। यह फ़ाइल उसी पृष्ठ पर एक साधारण तालिका में परिणाम भी दिखाएगी। जब उपयोगकर्ता फ़ॉर्म सबमिट करता है,  सभी रिकॉर्ड डेटाबेस में सहेजे जाएंगे।

सबसे पहले, मैं बूटस्ट्रैप सीडीएन को index.php . में जोड़ूंगा ।

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" crossorigin="anonymous"></script>

इसके बाद, `बॉडी` . में टैग,  बूटस्ट्रैप फ़ॉर्म के लिए निम्न HTML कोड जोड़ें।

<!DOCTYPE html>
<html lang="en">

<head>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" crossorigin="anonymous">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" crossorigin="anonymous">
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" crossorigin="anonymous"></script>

</head>

<body>
    <div id="wrap">
        <div class="container">
            <div class="row">

                <form class="form-horizontal" action="functions.php" method="post" name="upload_excel" enctype="multipart/form-data">
                    <fieldset>

                        <!-- Form Name -->
                        <legend>Form Name</legend>

                        <!-- File Button -->
                        <div class="form-group">
                            <label class="col-md-4 control-label" for="filebutton">Select File</label>
                            <div class="col-md-4">
                                <input type="file" name="file" id="file" class="input-large">
                            </div>
                        </div>

                        <!-- Button -->
                        <div class="form-group">
                            <label class="col-md-4 control-label" for="singlebutton">Import data</label>
                            <div class="col-md-4">
                                <button type="submit" id="submit" name="Import" class="btn btn-primary button-loading" data-loading-text="Loading...">Import</button>
                            </div>
                        </div>

                    </fieldset>
                </form>

            </div>
            <?php
               get_all_records();
            ?>
        </div>
    </div>
</body>

</html>

आप देख सकते हैं कि मैंने एक क्रिया को `functions.php` . पर सेट कर दिया है फ़ाइल। अगले चरण में, मैं यह फाइल बनाउंगा और इसमें कोड जोड़ूंगा। मैंने एक विधि भी शामिल की है `get_all_records()` फ़ाइल के अंत के पास। यह विधि डेटाबेस से सभी रिकॉर्ड प्राप्त करती है और इंडेक्स पेज पर तालिका में रिकॉर्ड प्रदर्शित करती है।

इसके बाद, मैं `functions.php` . बनाउंगा फ़ाइल करें और उसमें निम्न कोड जोड़ें।

<?php


 if(isset($_POST["Import"])){
		
		$filename=$_FILES["file"]["tmp_name"];		


		 if($_FILES["file"]["size"] > 0)
		 {
		  	$file = fopen($filename, "r");
	        while (($getData = fgetcsv($file, 10000, ",")) !== FALSE)
	         {


	           $sql = "INSERT into employeeinfo (emp_id,firstname,lastname,email,reg_date) 
                   values ('".$getData[0]."','".$getData[1]."','".$getData[2]."','".$getData[3]."','".$getData[4]."')";
                   $result = mysqli_query($con, $sql);
				if(!isset($result))
				{
					echo "<script type=\"text/javascript\">
							alert(\"Invalid File:Please Upload CSV File.\");
							window.location = \"index.php\"
						  </script>";		
				}
				else {
					  echo "<script type=\"text/javascript\">
						alert(\"CSV File has been successfully Imported.\");
						window.location = \"index.php\"
					</script>";
				}
	         }
			
	         fclose($file);	
		 }
	}	 


 ?>

जब अपलोड बटन क्लिक किया जाता है, अस्थायी फ़ाइल नाम स्मृति में संग्रहीत किया जाएगा और `जबकि` . का उपयोग करके लूप डेटा $getData . में सहेजा गया है चर। एक बार प्रक्रिया पूरी हो जाने के बाद, डेटा को कॉलम के अनुसार क्रमबद्ध किया जाता है और फिर अंत में `कर्मचारी जानकारी` में डाला जाता है। टेबल।

ध्यान दें कि `fgetcsv()` खुली फ़ाइल से पंक्तियों को पार्स करता है, CSV फ़ील्ड और `fopen()` . के लिए जाँच करता है एक फ़ाइल या एक यूआरएल खोलता है। परीक्षण डेटा के साथ CSV फ़ाइल आयात करके इस कोड का परीक्षण किया जा सकता है।

सहेजे गए रिकॉर्ड प्रदर्शित करें

एक बार CSV फ़ाइल आयात हो जाने के बाद, मैं एक साधारण फ़ंक्शन, `get_all_records()`, के माध्यम से डेटा प्रदर्शित करूंगा `index.php` में आरंभ किया गया। इस फ़ंक्शन को `function.php` . पर कॉपी करें ।

function get_all_records(){
    $con = getdb();
    $Sql = "SELECT * FROM employeeinfo";
    $result = mysqli_query($con, $Sql);  


    if (mysqli_num_rows($result) > 0) {
     echo "<div class='table-responsive'><table id='myTable' class='table table-striped table-bordered'>
             <thead><tr><th>EMP ID</th>
                          <th>First Name</th>
                          <th>Last Name</th>
                          <th>Email</th>
                          <th>Registration Date</th>
                        </tr></thead><tbody>";


     while($row = mysqli_fetch_assoc($result)) {

         echo "<tr><td>" . $row['emp_id']."</td>
                   <td>" . $row['firstname']."</td>
                   <td>" . $row['lastname']."</td>
                   <td>" . $row['email']."</td>
                   <td>" . $row['reg_date']."</td></tr>";        
     }
    
     echo "</tbody></table></div>";
     
} else {
     echo "you have no records";
}
}

इस वास्तव में सरल विधि में, मैंने बस सभी अभिलेखों का चयन किया और इन अभिलेखों को विधि के माध्यम से अनुक्रमणिका पृष्ठ पर प्रदर्शित किया। जब भी उपयोगकर्ता कोई CSV फ़ाइल अपलोड करता है, तो रिकॉर्ड तालिका में सहेजे जाएंगे और फिर अनुक्रमणिका पृष्ठ पर प्रदर्शित होंगे।

PHP के साथ MySQL को CSV में निर्यात करें

MySQL डेटाबेस से CSV फ़ाइल में डेटा निर्यात करना उसी तरह बहुत आसान है। इसे प्रदर्शित करने के लिए, मैं index.php . का उपयोग करूंगा जो मैंने पहले बनाया था।

फ़ाइल में निम्न कोड जोड़ें।

 <div>
            <form class="form-horizontal" action="functions.php" method="post" name="upload_excel"   
                      enctype="multipart/form-data">
                  <div class="form-group">
                            <div class="col-md-4 col-md-offset-4">
                                <input type="submit" name="Export" class="btn btn-success" value="export to excel"/>
                            </div>
                   </div>                    
            </form>           
 </div>

इस HTML मार्कअप को जोड़ने के बाद, निर्यात करें  तालिका के नीचे बटन दिखाई देगा। अब functions.php. . में निम्न शर्त जोड़ें

 if(isset($_POST["Export"])){
		 
      header('Content-Type: text/csv; charset=utf-8');  
      header('Content-Disposition: attachment; filename=data.csv');  
      $output = fopen("php://output", "w");  
      fputcsv($output, array('ID', 'First Name', 'Last Name', 'Email', 'Joining Date'));  
      $query = "SELECT * from employeeinfo ORDER BY emp_id DESC";  
      $result = mysqli_query($con, $query);  
      while($row = mysqli_fetch_assoc($result))  
      {  
           fputcsv($output, $row);  
      }  
      fclose($output);  
 }  

जब `निर्यात`  बटन क्लिक किया जाता है, हेडर `सामग्री-प्रकार:टेक्स्ट/सीएसवी` अटैचमेंट के साथ `data.csv` भेजा जाता है।

चूंकि `php://output` एक केवल-लिखने वाली स्ट्रीम है जो आउटपुट बफर तंत्र में लिखने की अनुमति देती है, मैंने अगली पंक्ति में तालिका से सभी डेटा का चयन किया, और इसे `fputcsv()`  पर पास कर दिया तरीका। यह विधि CSV के रूप में एक पंक्ति (फ़ील्ड सरणी के रूप में पारित) को प्रारूपित करती है और इसे निर्दिष्ट फ़ाइल में (एक नई पंक्ति द्वारा समाप्त) लिखती है। अंत में, सभी वांछित डेटा वाली फ़ाइल डाउनलोड हो जाती है।

अंत में, सभी कोड को एकीकृत करने के बाद, आप आवेदन के निम्नलिखित अंतिम आकार को देखेंगे।

आपको यह भी पसंद आ सकता है: PHP और MySQL में सरल CRUD

निष्कर्ष

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

सामान्यतःपूछे जाने वाले प्रश्न

मैं php और MySQL का उपयोग करके CSV को कैसे आयात और निर्यात करूं?

  • सबमिट किए गए रिकॉर्ड को स्वीकार करें, चाहे वह पर्याप्त CSV फ़ाइल हो।
  • PHP is_uploaded_file() फ़ंक्शन का उपयोग करके CSV फ़ाइल स्थानांतरण स्थिति का निरीक्षण करें।
  • PHP fopen() फ़ंक्शन का उपयोग करके CSV फ़ाइल तक पहुँचें।
  • PHP fgetcsv() फ़ंक्शन का उपयोग करके CSV रिकॉर्ड से डेटा पार्स करें।
  • सदस्य के ई-मेल के आधार पर डेटाबेस में डेटा डालें या अपडेट करें।

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL CREATE DATABASE Syntax – DBMS द्वारा सूचीबद्ध

  2. पीडीओ का उपयोग करके MySQL से संख्यात्मक प्रकार कैसे प्राप्त करें?

  3. MySQL में समग्र प्राथमिक कुंजी कैसे बनाएं

  4. SQL चयन सिंटैक्स - DBMS द्वारा सूचीबद्ध

  5. MySQL तालिका और स्तंभ अनुमतियाँ प्रदान करें