1

21 行目に構文エラーがあるのはなぜですか? (if($ sql)行で)私はこれが初めてで、理解できません。私は1時間車輪を回しています。ここにいるほとんどの人にとって、それは非常に単純なものだと確信しています。

 <?php 
    $conn = mysql_connect("localhost","root","") or die(mysql_error());
    mysql_select_db("solera_menu",$conn);

    if(isset($_POST['submit']))
    {
        $file = $_FILES['file']['tmp_name'];

        $handle = fopen($file,"r");
        while(($fileop = fgetcsv($handle,1000,",")) !==false)
        {
            $order = $fileop[0];
            $category = $fileop[1];
            $name = $fileop[2];
            $description = $fileop[3];
            $price = $fileop[4];


            $sql = mysql_query("INSERT INTO dinner (order,category,name,description,price) VALUES ('$order','$category','$name','$description','$price')")

            if($sql)
            {
                echo 'Data Uploaded Successfully';
            }
        }

    }

?>
4

1 に答える 1

4

の後にセミコロンはありませんmysql_query()

CSV ファイルをインポートするだけの場合は、LOAD DATA LOCAL INFILEステートメントまたはそのコマンドライン インターフェイスmysqlimportを試してください。

これは、使用している方法よりも 10 ~ 20 倍高速になる可能性があります。

また、現在のコードで作成した SQL インジェクションの脆弱性も防ぎます。

テストはしていませんが、大まかな例を次に示します。

<?php 
    $conn = mysql_connect("localhost","root","") or die(mysql_error());
    mysql_select_db("solera_menu",$conn);

    if(isset($_POST['submit']))
    {
        $file = $_FILES['file']['tmp_name'];
        $status = mysql_query("LOAD DATA LOCAL INFILE '$file' INTO TABLE dinner");

        if($status)
        {
            echo 'Data Uploaded Successfully';
        }
    }
?>
于 2013-05-03T21:57:33.267 に答える