在mysql中上传PHP csv文件

时间:2013-05-27 09:51:12

标签: php mysql csv permissions

我正在尝试从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>";}

1 个答案:

答案 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