2013-03-24 114 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); 
相關問題