【发布时间】:2019-09-13 01:45:05
【问题描述】:
我知道以前有人问过这个问题,但我找不到任何可以提供帮助的新帖子。直到今天,LOAD DATA LOCAL INFILE 一直运行良好。除了更新 PHP 和(不确定,但我认为)MariaDB 之外,我没有更改任何内容。我现在正在运行 PHP 7.2.17 和 MariaDB 10.1.38
现在我收到此错误: 警告:mysqli::query(): LOAD DATA LOCAL INFILE 禁止
我检查了我能找到的: - db 用户拥有所有权限,即使是 root 用户也会收到此错误 - 检查 my.cnf 中的条目 local-infile=1
Load 语句在 mysql 命令行中可以正常工作,但在 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; 我得到了这个,所以它应该可以工作吗?
local_infile 开启
【问题讨论】:
标签: php mariadb load-data-infile