Jak je zdokumentováno v části LOAD DATA INFILE
Syntaxe
:
Jinými slovy, seznam sloupců by měl popisovat sloupce databáze (nebo uživatelských proměnných), do kterých jsou každá vstupní pole by měly být přiřazeny (spíše než popisovat, ve kterém vstupním poli lze každý sloupec databáze nalézt). To je samozřejmě zřejmé, když si uvědomíme, že vstupní soubor nemusí obsahovat názvy polí, a proto by nebylo možné za všech okolností použít druhý přístup.
Proto chcete:
$columns = '(vendor_id, receiver_no, purchase_order_no, destination, po_status)';
Budete také muset přidat IGNORE 1 LINES
k příkazu, abyste přeskočili první řádek (s názvy polí):
$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);