PDO无法使用MySQL和LOAD DATA INFILE

时间:2016-05-01 08:52:26

标签: mysql pdo

我正在尝试使用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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

  

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

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