MySQLからLOAD DATA LOCAL INFILE文を使用しようとしていますが、「使用されているコマンドはこのMySQLバージョンでは許可されていません」というエラーが表示されます。MySQLとLOAD DATA INFILEでPDOが失敗する
データファイルは、MySqlを実行しているサーバーに対してローカルです。 私はMySql Workbench(同じマシンにインストールされている)から同じコマンドを実行することができ、正常に動作します。これは、サーバーがコマンドを受け入れるようにセットアップされていることを示唆しており、問題はおそらく私のPHP PDOクライアント(同じマシン上)にある可能性があります。あなたが見ることができるように、私は、オブジェクトを作成するとき、私はPDO::MYSQL_ATTR_LOCAL_INFILE
を設定しています
function getDb() {
$dsn = 'mysql:host=localhost;dbname=my_db';
$username = 'username';
$password = 'password';
$options = [PDO::MYSQL_ATTR_LOCAL_INFILE => true];
return new PDO($dsn, $username, $password, $options);
}
:
は、ここで私はPDOを作成するコードです。
LOAD DATA LOCAL INFILE '/media/working/my_file.psv'
INTO TABLE MY_TABLE
FIELDS TERMINATED BY '|'
IGNORE 1 LINES
任意のアイデア:
ここでは、SQLコマンドがですか?
http://stackoverflow.com/questions/10762239/mysql-enable-load-data-local-infile – Mihai