【问题标题】:PDO failing with MySQL and LOAD DATA INFILEPDO 因 MySQL 和 LOAD DATA INFILE 而失败
【发布时间】:2016-05-01 08:52:25
【问题描述】:

我正在尝试使用 MySQL 中的 LOAD DATA LOCAL INFILE 语句,但出现“此 MySQL 版本不允许使用的命令”的错误。

数据文件在运行 MySql 的服务器上是本地的。 我可以从 MySql Workbench(安装在同一台机器上)运行相同的命令,并且工作正常。这表明服务器已设置为接受该命令,并且问题可能出在我的PHP PDO 客户端(同样,在同一台机器上)。

这是我创建 PDO 的代码:

function getDb() {
    $dsn        = 'mysql:host=localhost;dbname=my_db';
    $username   = 'username';
    $password   = 'password';
    $options    = [PDO::MYSQL_ATTR_LOCAL_INFILE => true];
    return new PDO($dsn, $username, $password, $options);
}

如您所见,我在创建对象时设置了PDO::MYSQL_ATTR_LOCAL_INFILE

这是 sql 命令:

LOAD DATA LOCAL INFILE '/media/working/my_file.psv' 
INTO TABLE MY_TABLE 
FIELDS TERMINATED BY '|' 
IGNORE 1 LINES

有什么想法吗?

【问题讨论】:

标签: mysql pdo


【解决方案1】:

我可以从 MySql Workbench 运行相同的命令(安装在 同一台机器),它工作正常。

  • 您确定服务器上只有一个 mysql 版本吗?
  • 你确定吗 该脚本和您从控制台使用相同的数据库用户 权利?

【讨论】:

  • 是的,是的——只有一个mysqld进程在运行,我只有一个用户(root)
猜你喜欢
  • 2021-12-06
  • 2013-09-14
  • 2014-03-31
  • 1970-01-01
  • 1970-01-01
  • 2012-10-05
  • 2010-11-17
  • 1970-01-01
  • 2017-07-21
相关资源
最近更新 更多