【发布时间】:2016-07-29 16:42:02
【问题描述】:
我在通过 php 执行 LOAD DATA LOCAL INFILE 时遇到问题。
PDOStatement::execute(): LOAD DATA LOCAL INFILE forbidden in /blablabla
Query 直接用 mysql 工作,但不能用 php。
我从mysql检查了我的local_infile,没问题:
SHOW GLOBAL VARIABLES LIKE 'local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile | ON |
+---------------+-------+
1 row in set (0.00 sec)
还有一些其他的问题,但我不能修改源代码(所以 PDO 配置在 php 代码中): LOAD DATA LOCAL INFILE forbidden in... PHP
编辑:我找到了如何在我的情况下配置 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。
有什么想法吗? 谢谢。
【问题讨论】:
-
您使用的究竟是什么路径? (我想这不是blabla^^)。可以试试
dirname(__FILE__).'/'.Your_Path吗? -
这是我项目的路径。这里是完整路径:
Warning: PDOStatement::execute(): LOAD DATA LOCAL INFILE forbidden in /home/soann-elosi/Documents/magento2project/vendor/magento/zendframework1/library/Zend/Db/Statement/Pdo.php on line 228 -
mysql 用户是否设置了文件权限?
-
文件权限已设置... :(
-
@SirBigoo 你解决了这个问题吗?