【问题标题】:PHP : LOAD DATA LOCAL INFILE forbiddenPHP:禁止加载数据本地INFILE
【发布时间】: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 你解决了这个问题吗?

标签: php mysql pdo


【解决方案1】:
$pdo = new PDO(
    'mysql:host=hostname;dbname=ssldb',
    'username',
    'password',
    [PDO::MYSQL_ATTR_LOCAL_INFILE => true]
);

【讨论】:

    猜你喜欢
    • 2019-09-13
    • 2019-09-18
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    相关资源
    最近更新 更多