Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Muat file csv dengan kolom tertentu menggunakan PDO

Seperti yang didokumentasikan dalam LOAD DATA INFILE Sintaks :

Dengan kata lain, daftar kolom harus menjelaskan kolom database (atau variabel pengguna) yang masing-masing bidang input harus ditetapkan (daripada menjelaskan di bidang input mana setiap kolom basis data dapat ditemukan). Ini, tentu saja, jelas ketika seseorang menyadari bahwa file input tidak perlu berisi nama bidang dan dengan demikian tidak mungkin untuk mengadopsi pendekatan yang terakhir dalam semua keadaan.

Oleh karena itu, Anda ingin:

$columns = '(vendor_id, receiver_no, purchase_order_no, destination, po_status)';

Anda juga perlu menambahkan IGNORE 1 LINES ke perintah untuk melewati baris pertama (dengan nama bidang):

$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. Pembuat kueri Laravel - gunakan kembali kueri dengan pernyataan where yang diubah

  2. Permintaan MySQL yang rumit

  3. MySQL DROP COLUMN

  4. PHP MYSQL :cara membuat daftar tabel dalam urutan menaik

  5. MySQL Menghitung nilai yang berbeda dari satu kolom