我正在尝试从php代码将csv文件上传到我的mysql数据库中。 我收到错误: “无法更新:此MySQL版本不允许使用的命令”
这是我正在使用的代码。 我是否必须提供任何类型的权限,以便我能够从PHP表单中执行此操作。 因为我能够直接从终端从mysql加载这个相同的csv文件。
P.S。: - 我在阅读这篇文章后更改了my.cnf文件。 MySQL: Enable LOAD DATA LOCAL INFILE
我怎么也无法从phpmyadmin和php表单上传。错误消息是相同的。即 “无法更新:此MySQL版本不允许使用的命令”
下面是一段代码。
if(@$_POST['submit'])
{
$file = $_FILES['file'];
$name = $file['name'];
$type = $file['type'];
$size = $file['size'];
$tmppath = $file['tmp_name'];
echo "Name of the file is $name <br> $tmppath";
if($name!="")
{
echo "<br> Trying to upload file <br>";
if(move_uploaded_file($tmppath, "csvfiles/.$name")) //project is a folder in which you will save csv files
{
$query="LOAD DATA LOCAL INFILE '$tmppath' INTO TABLE test.metadata FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n' IGNORE 1 LINES;";
mysql_query ($query) or die ('Could not updated:'.mysql_error());
echo "CSV file inserted successfully !!<br>";
}else {echo "<br>Failed !!!!";}
}else {echo "<br>No file exist <br>";}
}else {echo " <br> No file exist <br>";}
答案 0 :(得分:0)
如果在服务器或客户端中禁用了LOAD DATA LOCAL
,则尝试发出此类语句的客户端会收到以下错误消息:
ERROR 1148: The used command is not allowed with this MySQL version
如果是UNIX
,请尝试在下面运行mysql_fix_privilege_tables --password=root_password
或者如果是windows
C:\> cd "C:\Program Files\MySQL\MySQL Server 5.0"
C:\> bin\mysql -u root -p mysql
mysql> SOURCE share/mysql_fix_privilege_tables.sql