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

PHP/MySQL के साथ CSV अपलोड करें

जब भी मुझे डेटाबेस तालिका में एक सीएसवी आयात करना पड़ा, मैंने हमेशा अपना स्वयं का सीएसवी पार्सर/आयातक लिखा है। यह काफी आसान है।

यहाँ एक उदाहरण है।

test.csv

Firstname,Lastname,Age
"Latheesan","Kanes",26
"Adam","Smith",30

test.php

<?php

// Mini Config
$csv_file       = 'test.csv';
$delimiter      = ',';
$enclosure      = '"';
$skip_first_row = true;
$import_chunk   = 250;

// Parse CSV & Build Import Query
$import_queries = array();
$first_row_skipped = false;
if (($handle = fopen($csv_file, "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, $delimiter, )) !== FALSE) {
        if ($skip_first_row && !$first_row_skipped) {
            $first_row_skipped = true;
            continue;
        }
        list($firstname, $lastname, $age) = $data;
        $import_queries[] = "INSERT INTO myTable (firstname, lastname, age) VALUES ('$firstname', '$lastname', $age);";
    }
    fclose($handle);
}

// Proceed if any data got parsed
if (sizeof($import_queries))
{
    foreach(array_chunk($import_queries, $import_chunk) as $queries)
    {
        $dbh->query(implode(' ', $queries));
    }
}

?>

पार्स की गई क्वेरी इस तरह दिखाई देंगी (यदि आप print_r यह):

Array
(
    [0] => INSERT INTO myTable (firstname, lastname, age) VALUES ('Latheesan', 'Kanes', 26);
    [1] => INSERT INTO myTable (firstname, lastname, age) VALUES ('Adam', 'Smith', 30);
)

डीबी में वास्तविक आयात के लिए आपके पास दो विकल्प हैं:

  1. आयात एसक्यूएल क्वेरी का संग्रह बनाएं और इसे बैच (array_chunk) में निष्पादित करें - इसका मतलब आपके डीबी के खिलाफ कम प्रश्न हैं। हालाँकि जैसा कि आप देख सकते हैं, मैं CSV से मूल्यों की जाँच नहीं कर रहा हूँ - यानी मुझे अपने डेटा स्रोत पर भरोसा है और कुछ भी नहीं बच रहा है - थोड़ा खतरनाक...

  2. आप क्वेरी को निष्पादित करते हैं, जैसे ही आपने इसे मानों से बचने के साथ बनाया है - छोटी कमी यह है कि यह 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. मैसकल - शून्य से शुरू करने के लिए ऑटो-इन्क्रीमेंट कैसे सेट करें

  2. SQL कमांड के माध्यम से MySQL होस्ट दिखाएं

  3. 193:% 1 एक नए रेल एप्लिकेशन के साथ मान्य Win32 एप्लिकेशन बग नहीं है

  4. %s ऑपरेटर का उपयोग करके पायथन में MySQL डेटाबेस बनाएं

  5. मेरे वेब ऐप के लिए मेट्रिक्स कैसे स्टोर करें?