Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tải tệp csv với các cột cụ thể bằng PDO

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysqli chuẩn bị câu lệnh ngắt hình ảnh chèn vào cơ sở dữ liệu

  2. Không thể kết nối với máy chủ mysql từ xa bằng unixodbc, libmyodbc

  3. Lỗi trong cú pháp SQL của bạn; kiểm tra hướng dẫn sử dụng tương ứng với phiên bản máy chủ MySQL của bạn

  4. Làm cách nào để lưu trữ dữ liệu từ mysql sang XML trong Laravel 5?

  5. MySQL Cluster có thể xử lý cơ sở dữ liệu terabyte không