我正在使用 PHP mysqli 库。每次我尝试运行 LOAD DATA LOCAL INFILE 命令时,mysqli 都会抱怨消息
The used command is not allowed with this MySQL version
从 MySQL 终端(必须使用 –local-infile=1 登录才能使其工作)或 PHPMyAdmin 运行命令时,我没有同样的问题。只是我的 PHP mysqli 代码遇到了这个错误。
我尝试设置此选项:
| 1 | mysqli_options ( $cnx , MYSQLI_OPT_LOCAL_INFILE , 1 ) ; |
在我的加载数据调用之前,但仍然没有效果。
我该如何解决这个问题?
- 您正在运行哪个 PHP 版本?
有几件事可能是错误的。请尝试以下操作:
添加到你的 my.cnf:
| 1 2 3 4 5 |
[ mysql ] local –infile = 1 [mysqld ] |
从 PHP 连接时启用本地 infile
| 1 2 3 |
$conn = mysqli_init ( ) ; mysqli_options ( $conn , MYSQLI_OPT_LOCAL_INFILE , true ) ; mysqli_real_connect ( $conn ,server ,user ,code ,database ) ; |
除了在mysql配置文件(/etc/mysql/my.cnf)中提到的”local-infile=1″,你可能还需要
| 1 2 3 4 5 |
[MySQLi ] mysqli .allow_local_infile = On |
在您的系统中 php.ini(/etc/php5/cgi/php.ini 或类似的 – 本地 php.ini 将不起作用)
还有一件大事——如果您在 php.ini 中使用 “open_basedir”(无论其中包含什么值),该功能将被静默禁用!因此,如果您正在使用”加载数据本地 infile”,则必须放弃 open_basedir(至少对于 PHP 5.4.4,如 Debian Wheezy 中所示)
声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)