我正在尝试使用LOAD DATA INFILE将一些记录插入表中。不幸的是,它不工作。
这里有一些细节
如果我使用这个说明:
LOAD DATA INFILE 'file.txt'
INTO TABLE table_ex
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(field1, field2, field3, field4);
它使用MySQL客户端程序和PHP应用程序。以这种方式,它将在我的MySQL安装的数据目录中查找文件。
现在,如果我尝试使用LOCAL选项执行指令,它只有在我使用mysql客户端而不是PHP时才有效:
LOAD DATA LOCAL INFILE 'path/to/file/file.txt'
INTO TABLE table_ex
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(field1, field2, field3, field4);
再次..它与MySQL客户端,但不是从PHP应用程序…我得到这个错误:
LOAD DATA LOCAL INFILE forbidden in /path/to/my/application
我读到这个问题与PHP的编译和使用mysqlnd有关。我使用PHP 5.3.8和MySQL 5.5.15,但我还没有找到一个解决方案。
附加信息:到目前为止,我发现的唯一帮助是open PHP bug: