【发布时间】: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
有什么想法吗?
【问题讨论】: