0

PHP コードから mysql データベースに csv ファイルをアップロードしようとしています。エラーが表示されます: 「更新できませんでした: この MySQL バージョンでは、使用されたコマンドは許可されていません」

これは私が使用しているコードです。PHPフォームから実行できるように、何らかの権限を付与する必要がありますか? これと同じcsvファイルをmysqlからターミナルから直接ロードできるためです。

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 に答える