文件无法通过PHP上传到MySQL
我在执行以下查询时遇到问题:文件无法通过PHP上传到MySQL,php,mysql,laravel,Php,Mysql,Laravel,我在执行以下查询时遇到问题: $csv = $path . $filename; $query = sprintf("LOAD DATA local INFILE '%s' INTO TABLE users FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\\n' IGNORE 1 LINES (`firstname`, `lastname`, `u
$csv = $path . $filename;
$query = sprintf("LOAD DATA local INFILE '%s' INTO TABLE users FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\\n' IGNORE 1 LINES (`firstname`, `lastname`, `username`, `gender`, `email`, `country`, `ethnicity`, `education` )", addslashes($csv));
return DB::connection()->getpdo()->exec($query);
它在Localhost中工作得非常好。当我在服务器上尝试时,出现以下错误:
{"error":{"type":"PDOException","message":"SQLSTATE[42000]: Syntax error or access violation: 1148 The used command is not allowed with this MySQL version","file":"\/var\/www\/vhosts\/xxxxxxxx.com\/httpdocs\/xxxxxxxx.com\/app\/controllers\/UsersController.php","line":224}}
我更改了my.cnf
文件中local infle=1
的值。尽管如此,还是会出现同样的错误
可能有什么问题?您可能必须在my.cnf文件和php PDO中启用此功能
[mysqld]
local-infile
[mysql]
local-infile
而且
<?php
$pdo = new PDO($dsn, $user, $password,
array(PDO::MYSQL_ATTR_LOCAL_INFILE => true)
);
您可以回送这个$query
并查看结果SQL语句吗?字符串(288)“将数据本地填充'public/uploads/2015/03/1425270026 users.csv'加载到以''结尾的表用户字段中,'可选地由''括起来''由''转义''行,由'\n'终止忽略1行(
firstname,
lastname,
用户名,
性别,
电子邮件,
国家,
民族,
教育“)'这是输出错误读取语法错误或访问冲突。我会给pdo一个非常简单的sql语句,您知道它是正确的。如果您得到相同的错误,您知道这是访问问题,否则它是语法错误。@ReenactorRob:语法与locahost相同,运行良好。我还有另一个sql查询,我们正在运行LH.所以我怀疑还有其他一些问题。我很困惑。你说你的语法很好,所以没有语法错误,你还有其他sql查询,所以没有访问问题。你已经排除了这两种可能性,但错误仍然存在。对吗?