通过php执行LOAD DATA LOCAL INFILE时遇到了问题。
PDOStatement::execute(): LOAD DATA LOCAL INFILE forbidden in /blablabla
查询正在直接使用mysql,但它无法使用php。
我从mysql检查了我的local_infile,没关系:
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
编辑:我发现在我的情况下如何配置pdo,我添加了PDO :: MYSQL_ATTR_LOCAL_INFILE => PDO中的真实选项。
我还有一个错误:
[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 :(得分:9)
$pdo = new PDO(
'mysql:host=hostname;dbname=ssldb',
'username',
'password',
[PDO::MYSQL_ATTR_LOCAL_INFILE => true]
);