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

PDO का उपयोग करके विशिष्ट कॉलम वाली एक csv फ़ाइल लोड करें

जैसा कि LOAD DATA INFILE के तहत प्रलेखित है सिंटैक्स :

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

इसलिए, आप चाहते हैं:

$columns = '(vendor_id, receiver_no, purchase_order_no, destination, po_status)';

आपको IGNORE 1 LINES . भी जोड़ना होगा पहली पंक्ति (फ़ील्ड नामों के साथ) को छोड़ने के लिए कमांड के लिए:

$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)."
      IGNORE 1 LINES ". $columns);


  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. MySQL संग्रहीत फ़ंक्शन निर्माण में त्रुटियाँ ERROR 1064 और 1327

  3. SQLSTATE [HY000] [1698] उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' के लिए प्रवेश निषेध

  4. एस्केपिंग कैरेक्टर जैसे $ और % | MySQL और PHP

  5. एक MySQL अद्यतन क्वेरी में यदि तब अन्य का उपयोग कैसे करें?