【发布时间】:2013-03-24 02:35:44
【问题描述】:
我正在尝试在 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 设置为 'On'。
我在这里遗漏了什么吗? 您是否必须在 Joomla 中做一些特别的事情才能使其正常工作?
【问题讨论】:
-
你是如何在 Joomla 中做到这一点的?你用的php代码是什么?
-
@DavidFritsch,这就是我所拥有的: $db = JFactory::getDBO(); $db->setQuery("LOAD DATA LOCAL INFILE '$path' INTO TABLE $table"); $db->query();
-
您使用的是哪个版本的 PHP?我在使用 PHP 5.4.6-1ubuntu1.2 的 Ubuntu 12.10 上看到了同样的问题。这似乎是 PHP 中的一个错误:bugs.php.net/bug.php?id=55737&edit=3.
-
@MichaelHärtl,这些是我使用的版本。我确实认为这是 PHP 中的一个错误,所以我升级到 5.4.13,但这并没有解决问题。我目前正在将发行版切换到 CentOS,看看是否能解决我的问题。开始听起来像是 Ubuntu 和 PHP 的问题。