2

我正在尝试在 MySQL 中使用 LOAD DATA LOCAL INFILE 命令,但我在 PHP/Joomla 中不断收到错误消息:此 MySQL 版本不允许使用的命令

我花了很长时间在谷歌上搜索,但我看到的唯一建议是将 local-infile = 1 添加到我的 my.cnf 文件中(我已经在 [client]、[mysql] 和 [ mysqld])。

此外,如果我从命令行从我的 Apache 服务器连接到 MySQL 服务器(所以不使用 PHP),我可以毫无问题地运行 LOAD DATA LOCAL(所以它不可能是权限问题)。

我还检查了 php.ini,果然,mysqli.allow_local_infile 设置为“开”。

我在这里错过了什么吗?您是否必须在 Joomla 中做一些特别的事情才能使其正常工作?

4

2 回答 2

4

我刚刚在这里回答了一个类似的问题,也许它可以帮助:

从 MySQL 5.0 升级到 5.5 后,我发现我突然必须在 PHP 中创建连接时专门启用 LOCAL INFILE。

使用 mysql:

mysql_connect(server,user,code,false,128); // 128 enables LOCAL INFILE
mysql_select_db(database);

使用 mysqli:

$conn = mysqli_init();
mysqli_options($conn, MYSQLI_OPT_LOCAL_INFILE, true);
mysqli_real_connect($conn,server,user,code,database);
于 2013-05-22T12:42:50.167 回答
1

我遇到了同样的问题,在我的情况下,Joomla 用户缺乏 root 的权限;为 J 用户提供完全权限解决了它,但后来我的组件用于分发,所以我改为使用标准 .sql 文件并手动解析/创建它们。希望这可以帮助。

于 2013-04-07T20:34:21.493 回答