PHP:禁止加载数据本地INFILE

时间:2016-04-08 12:11:27

标签: php mysql pdo

通过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。

有什么想法吗? 感谢。

1 个答案:

答案 0 :(得分:9)

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