Wie unter LOAD DATA INFILE
dokumentiert Syntax
:
Mit anderen Worten, die Spaltenliste sollte die Datenbankspalten beschreiben (oder Benutzervariablen) zu denen jeweils die Eingabefelder gehören zugewiesen werden soll (anstatt zu beschreiben, in welchem Eingabefeld sich welche Datenbankspalte befindet). Dies ist natürlich offensichtlich, wenn man bedenkt, dass die Eingabedatei keine Feldnamen enthalten muss und es daher unmöglich wäre, den letzteren Ansatz unter allen Umständen zu übernehmen.
Daher möchten Sie:
$columns = '(vendor_id, receiver_no, purchase_order_no, destination, po_status)';
Sie müssen auch IGNORE 1 LINES
hinzufügen zum Befehl, um die erste Zeile (mit Feldnamen) zu überspringen:
$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);