mysql - MySQL 和 LOAD DATA INFILE 导致 PDO 失败

标签 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

有什么想法吗?

最佳答案

I can run the same command from MySql Workbench (installed on the same machine) and it works fine.

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

关于mysql - MySQL 和 LOAD DATA INFILE 导致 PDO 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36964825/

相关文章:

mysql - 在 MySql 中对 Varchar 列设置索引

php - MySQL - 使其他列成为自动增量列的函数

php - 查询数据到json响应

php - 在行列中存储 2 个值(mysql),例如卡片集合中的卡片

php - PDO 的查询与执行

插入文本时出现 MySQL 错误 1292

mysql - 将 mysql 与 hive 结合使用

mysql - 允许同一父级的多个 "types"数据的通用模式是什么

php - 警告:PDO::prepare() 期望参数 1 为字符串,给定对象

php - 在html输入字段中显示MySQL表数据(PDO)