2013-03-24 79 views
2

我想在MySQL中使用LOAD DATA LOCAL INFILE命令,但我不断收到在PHP /的Joomla指出一个错误:使用的命令是不允许使用此版本的MySQLPHP MySQL的使用命令不允许

我花了相当长的一段时间搜索,但我见过的唯一建议包括将my.cnf文件(我已经在[client],[mysql]和[的mysqld])。另外,如果我从命令行(因此不使用PHP)从我的Apache服务器连接到MySQL服务器,我可以运行LOAD DATA LOCAL而不会出现问题(所以它不能成为权限)。

我也检查了php.ini,果然,mysqli.allow_local_infile被设置为'On'。

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

+0

你是如何在的Joomla这样做呢?什么是你使用的PHP代码? – 2013-03-24 03:25:24

+0

@DavidFritsch,这里是我的: $ db = JFactory :: getDBO(); $ db-> setQuery(“LOAD DATA LOCAL INFILE'$ path'INTO TABLE $ table”); $ db-> query(); – Rob 2013-03-24 03:54:16

+1

您使用的是哪个版本的PHP?我在Ubuntu 12.10上看到了与PHP 5.4.6-1ubuntu1.2相同的问题。它似乎是PHP中的一个错误:https://bugs.php.net/bug.php?id = 55737&edit = 3。 – 2013-03-24 11:24:15

回答

1

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

4

我刚才已经回答了类似的问题here,也许它可以帮助:

从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); 
相关问题