Như được ghi lại trong LOAD DATA INFILE
Cú pháp
:
Nói cách khác, danh sách cột phải mô tả các cột cơ sở dữ liệu (hoặc biến người dùng) mà mỗi trường đầu vào nên được chỉ định (thay vì mô tả mỗi cột cơ sở dữ liệu có thể được tìm thấy trong trường đầu vào nào). Tất nhiên, điều này là hiển nhiên khi người ta nhận ra rằng tệp đầu vào không cần phải chứa tên trường và do đó sẽ không thể áp dụng cách tiếp cận thứ hai trong mọi trường hợp.
Do đó, bạn muốn:
$columns = '(vendor_id, receiver_no, purchase_order_no, destination, po_status)';
Bạn cũng sẽ cần thêm IGNORE 1 LINES
vào lệnh để bỏ qua dòng đầu tiên (với tên trường):
$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);