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);