2016-04-08 24 views
1

Bir LOAD DATA LOCAL INFILE işlevini php ile yürütürken sorun yaşıyorum.PHP: LOAD DATA LOCAL INFILE yasak

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

Sorgu doğrudan mysql ile çalışıyor, ancak php ile hiçbir işi yapmak.

ben mysql benim local_infile kontrol o ok:

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

bu konuda sorular bazıları vardır ama kaynak kodunu (php kodunda yüzden PDO yapılandırması) değiştiremezsiniz: LOAD DATA LOCAL INFILE forbidden in... PHP

DÜZENLEME: Durumumda pdo'yu nasıl yapılandıracağımı ve PDO'da PDO :: MYSQL_ATTR_LOCAL_INFILE => true seçeneğini ekledim.

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

Sorgu hala doğrudan mysql ile çalışmak:

Bir diğer hata var.

Herhangi bir fikrin var mı? Teşekkürler.

+0

Tam olarak hangi yolu kullanıyorsunuz? (blabla ^^ değil sanırım). "Dirname (__ FILE __)."/"Ile çalışmayı deneyebilir misiniz? – Xenofexs

+0

Bu, projemin yoludur. İşte tam yol: '' 'Uyarı: PDOStatement :: execute(): LOAD DATA LOCAL INFILE içinde/home/soann-elosi/Documents/magento2project/vendor/magento/zendframework1/library/Zend/Db/Statement /Pdo.php on line 228''' – SirBigoo

+0

FILE ayrıcalığı mysql kullanıcısı için ayarlandı mı? –

cevap

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