2016-04-08 83 views
1

PHP経由でLOAD DATA LOCAL INFILEを実行すると問題が発生しました。PHP:LOAD DATA LOCAL INFILEが禁止されています

PDOStatement::execute(): LOAD DATA LOCAL INFILE forbidden in /blablabla

クエリは、直接MySQLで働いているが、それはPHPで何の仕事をしていません。

私は、MySQLから私のlocal_infileをチェックし、それはokです:

SHOW GLOBAL VARIABLES LIKE 'local_infile'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | local_infile | ON | +---------------+-------+ 1 row in set (0.00 sec)

は、そのことについての質問いくつか他の人がありますが、私は、ソースコード(PHPコードで非常にPDOの設定)を変更することはできません。 LOAD DATA LOCAL INFILE forbidden in... PHP

EDIT:私は、私の場合にはPDOを構成する方法を見つけて、私はPDOでPDO :: MYSQL_ATTR_LOCAL_INFILE => trueオプションを追加しました。

私は他のエラーを得た:

[13:10:16] SQLSTATE[42000]: Syntax error or access violation: 1148 The used command is not allowed with this MySQL version, query was: LOAD DATA LOCAL INFILE '/tmp/export_cat_28.csv' REPLACE INTO TABLE tmp_pimgento_entities_category FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES;

クエリはまだ直接MySQLで動作します。

アイデア?おかげさまで

+0

正確にどのパスを使用しますか? (私はそれがblablaではないと思う^^)。あなたは 'dirname(__ FILE __)。 '/'。Your_Path'を使ってみることができますか? – Xenofexs

+0

これは私のプロジェクトへのパスです。ここでは絶対パス: 警告:PDOStatement :: execute():/ home/soann-elosi/Documents/magento2project/vendor/magento/zendframework1/library/Zend/Db/StatementでLOAD DATA LOCAL INFILEが禁止されています。 /Pdo.php on line 228''' – SirBigoo

+0

mysqlユーザにFILE権限が設定されていますか? –

答えて

5
$pdo = new PDO(
    'mysql:host=hostname;dbname=ssldb', 
    'username', 
    'password', 
    [PDO::MYSQL_ATTR_LOCAL_INFILE => true] 
); 
関連する問題