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

PHP स्क्रिप्ट mysql में csv डेटा आयात करने के लिए

कई सुझाव:

  • बहिष्कृत ext/mysql का उपयोग न करें , जब आप ext/mysqli या PDO का उपयोग कर सकते हैं।

  • संपूर्ण csv फ़ाइल को PHP वेरिएबल में न पढ़ें। क्या होता है जब फ़ाइल 500MB की होती है?

  • csv डेटा को पार्स करने के लिए कस्टम PHP कोड न लिखें, जब आप बिल्टिन फ़ंक्शन का उपयोग कर सकते हैं fgetcsv()

  • जब आप तैयार बयान

  • किसी बाहरी फ़ाइल के डेटा को SQL कथनों में प्रक्षेपित न करें। यह SQL इंजेक्शन को जोखिम में डालता है कमजोरियां, ठीक वैसे ही जैसे जब आप अविश्वसनीय उपयोगकर्ता इनपुट को प्रक्षेपित करते हैं।

  • जब आप MySQL के डेटा इनफाइल लोड करें आज्ञा। यह पंक्ति दर पंक्ति डालने से 20 गुना तेज है।

यहाँ एक आसान उपाय है:

<?php
$databasehost = "localhost"; 
$databasename = "test"; 
$databasetable = "sample"; 
$databaseusername="test"; 
$databasepassword = ""; 
$fieldseparator = ","; 
$lineseparator = "\n";
$csvfile = "filename.csv";

if(!file_exists($csvfile)) {
    die("File not found. Make sure you specified the correct path.");
}

try {
    $pdo = new PDO("mysql:host=$databasehost;dbname=$databasename", 
        $databaseusername, $databasepassword,
        array(
            PDO::MYSQL_ATTR_LOCAL_INFILE => true,
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
        )
    );
} catch (PDOException $e) {
    die("database connection failed: ".$e->getMessage());
}

$affectedRows = $pdo->exec("
    LOAD DATA LOCAL INFILE ".$pdo->quote($csvfile)." INTO TABLE `$databasetable`
      FIELDS TERMINATED BY ".$pdo->quote($fieldseparator)."
      LINES TERMINATED BY ".$pdo->quote($lineseparator));

echo "Loaded a total of $affectedRows records from this csv file.\n";

?>

मैंने मैक पर PHP 5.3.26 के साथ इसका परीक्षण किया, लिनक्स पर MySQL 5.6.14 से कनेक्ट किया।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में INSERT और UPDATE में क्या अंतर हैं?

  2. यदि MySQL में एक इंडेक्स बनाने या छोड़ने के लिए मौजूद है तो मैं कैसे काम कर सकता हूं?

  3. मैसकल मैच ... बनाम साधारण % टर्म% की तरह

  4. JSON_STORAGE_SIZE () - MySQL में JSON दस्तावेज़ का संग्रहण आकार खोजें

  5. जेपीए के माध्यम से यादृच्छिक चयन पंक्तियां