जैसा कि 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);