0

我正在尝试从 php 代码将 csv 文件上传到我的 mysql 数据库中。我收到一个错误:“无法更新:此 MySQL 版本不允许使用的命令”

这是我正在使用的代码。我是否必须授予任何类型的权限,以便我能够从 php 表单中做到这一点。?因为我可以直接从终端从 mysql 加载相同的 csv 文件。

PS:-阅读这篇文章后,我更改了 my.cnf 文件。 MySQL:启用 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>";}
4

1 回答 1

0

如果LOAD DATA LOCAL在服务器或客户端中禁用,则尝试发出此类语句的客户端会收到以下错误消息:

ERROR 1148: The used command is not allowed with this MySQL version

尝试在 UNIX 下运行

mysql_fix_privilege_tables --password=root_password

或者如果窗户

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
于 2013-05-27T10:07:33.153 回答