我正在使用PHP mysqli库。每次我尝试运行LOAD DATA LOCAL INFILE
命令时,mysqli都会抱怨消息
此MySQL版本不允许使用used命令
从MySQL终端运行命令(必须使用--local-infile = 1登录以使其正常工作)或PHPMyAdmin,我没有遇到同样的问题。只是我的PHP + mysqli代码遇到此错误。
我尝试设置此选项:
mysqli_options($cnx, MYSQLI_OPT_LOCAL_INFILE, 1);
在我加载数据之前,但仍然没有效果。
如何更正此问题?
答案 0 :(得分:10)
有些事情可能是错的。请尝试以下方法:
添加到您的my.cnf:
[mysql]
local-infile=1
[mysqld]
local-infile=1
从PHP连接时启用本地infile
$conn = mysqli_init();
mysqli_options($conn, MYSQLI_OPT_LOCAL_INFILE, true);
mysqli_real_connect($conn,server,user,code,database);
答案 1 :(得分:1)
除了在mysql配置文件(/etc/mysql/my.cnf)中提到“local-infile = 1”之外,你可能还需要
[MySQLi]
mysqli.allow_local_infile = On
[MySQL]
mysql.allow_local_infile = On
在你的系统php.ini(/etc/php5/cgi/php.ini或类似的 - 本地php.ini将无法正常工作)
另一件大事 - 如果您在php.ini中使用“open_basedir”(无论有什么值),该功能将被静默禁用!因此,如果您正在使用“加载数据本地infile”(至少对于PHP 5.4.4,如Debian Wheezy中所见),您必须放弃 open_basedir