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

LOAD DATA LOCAL INFILE tidak berfungsi dari php 5.5 menggunakan PDO

Anda perlu mengonfigurasi keduanya klien dan server untuk mengizinkan perintah ini:

  1. Pastikan server mengizinkan LOAD DATA LOCAL INFILE. Edit /etc/my.cnf di server MySQL:

    [server]
    local-infile=1
    
  2. Setel atribut PDO dalam skrip PHP Anda:

    <?php
    
    $dsn = "mysql:host=localhost;dbname=test";
    $user = "root";
    $password = "root";
    $pdo = new PDO($dsn, $user, $password, array(PDO::MYSQL_ATTR_LOCAL_INFILE=>1));
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    $pdo->exec("LOAD DATA LOCAL INFILE 'foo.csv' INTO TABLE foo FIELDS TERMINATED BY ','");
    

    Ini perlu diatur dalam argumen opsi driver ke konstruktor, bukan dalam panggilan berikutnya ke setAttribute() .

    Saya baru saja menguji contoh kode di atas dengan sukses dengan PHP 5.5.8 dan Percona Server 5.6.15 di CentOS Linux 6.5.

Jika Anda masih mengalami masalah, Anda mungkin memiliki klien MySQL atau PDO yang tidak mengizinkan file-lokal. Persyaratan dijelaskan dalam http://dev. mysql.com/doc/refman/5.6/en/load-data-local.html

mysql.allow_local_infile opsi di php.ini Anda tidak relevan dengan PDO.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kueri mana yang lebih baik dan efisien - mysql

  2. Hasil N Terbaik MySQL dengan Tabel Gabung

  3. Pelajari MySQL – Minggu Teknologi Baru

  4. Hubungkan aplikasi web pada wadah Tomcat ke wadah mysql melalui hibernate

  5. PHP Foreach pada kumpulan Hasil MySQLi