Zoals gedocumenteerd onder LOAD DATA INFILE
Syntaxis
:
Met andere woorden, de kolomlijst moet de databasekolommen beschrijven (of gebruikersvariabelen) waaraan elke de invoervelden moet worden toegewezen (in plaats van te beschrijven in welk invoerveld elke databasekolom kan worden gevonden). Dit is natuurlijk duidelijk wanneer men zich realiseert dat het invoerbestand geen veldnamen hoeft te bevatten en het dus onmogelijk zou zijn om de laatste benadering onder alle omstandigheden te gebruiken.
Daarom wil je:
$columns = '(vendor_id, receiver_no, purchase_order_no, destination, po_status)';
Je moet ook IGNORE 1 LINES
. toevoegen naar het commando om de eerste regel over te slaan (met veldnamen):
$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);