我知道以前曾有人问过这个问题,但是我找不到任何新的帖子可能会对您有所帮助。直到今天,LOAD DATA LOCAL INFILE一直运行良好。除了为PHP和(不确定,但我认为)MariaDB运行了更新之外,我没有做任何其他更改。我现在正在运行PHP 7.2.17和MariaDB 10.1.38
现在我收到此错误: 警告:mysqli :: query():禁止加载数据本地文件
我检查了我能找到的内容:-数据库用户具有所有权限,即使root用户也遇到此错误-检查my.cnf中是否有条目local-infile = 1
在mysql命令行中,load语句工作正常,但在PHP脚本中,效果不佳。
这是我运行导入的方法:
define ('DB_USER', "db_user");
define ('DB_PASSWORD', "my_password");
define ('DB_DATABASE', "prosjekt");
define ('DB_HOST', "localhost");
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
我在最后一行得到错误-> $ mysqli-> query($ query);
$query = <<<eof
LOAD DATA LOCAL INFILE '$fileName'
INTO TABLE prosjekt
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r'
(prosjektnavn,prosjektstatus,prosjektbesk,oppdragsgiver,prosjektans,prosjektdelt,start,slutt,prosjektnr,prosjekttype,sortnr,ant_rapport,litt_link)
eof;
$mysqli->query($query);
因此,我可以在mysql控制台中正常运行,但不能在PHP脚本中运行,今天它开始失败。任何想法如何解决?当我运行SHOW VARIABLES时;我明白了,所以它应该工作吗?
蝴蝶不菲
蛊毒传说