2016-09-13 17 views
1

私は過去数日間私を悩ます問題があります。私はすべてを探して試しましたが、今までは何も働いていませんでした。PHP import csv not working

要約:CSVアップロードが正常に機能していますが、データのインポート自体が機能していません。

これは完全なスクリプト(セキュリティは特定の人だけが、とにかくこれをアクセスも、それのための提案を追加して自由に感じることができるので、何の問題ではない)である:それは、「インポートエラーを返し

if(isset($_POST['athene_advanced_submit_csv'])){ 
$admin_valid = true; //not doing anything yet 

if($admin_valid == true){ 
    $filename = $_FILES['athene_files']['name']; 
    $target_path = '../db/'; 
    $result_files = move_uploaded_file($_FILES['athene_files']['tmp_name'], $target_path.$filename); 


    if($result_files == true){ 
     $query_import = "LOAD DATA INFILE 'import.csv' 
     INTO TABLE `test` 
     FIELDS TERMINATED BY ',' 
     LINES TERMINATED BY ',,,\r\n' 
     (id, name, price)"; 

     $result_import = mysqli_query($dbcon, $query_import); 

     if($result_import == true){ 
      echo '<script>alert("CSV imported");</script>';  
     }else{ 
      echo '<script>alert("import error");</script>';  
     } 
    }else{ 
     echo '<script>alert("file error");</script>'; 
    } 

} 
else{ 
    echo '<script>alert("no file");</script>'; 
} 

}

" 何度も。

私のCSVは以下の通りです:

id,name,price 
1,one,12 
2,two,23 
3,three,34 
4,four,45 
5,five,56 
6,six,67 
7,seven,78 

誰かが私を助けることができますか?私の問題は、私のクエリが私のCSVのエクスポートには適していないが、解決策はまだ見つけられていないということだと思います。

非常に多くの事前に感謝!

+0

'LINES ,,, \ rを\なぜコンマn''? –

+1

mysqli_errorを使用して理由を取得します。 – Jens

+0

正直言って、ここではStackoverflowの例で働いていました。私はカンマを\ n(私のCSVは行だけを使用しているので)変更しましたが、まだ動作しませんでした。代わりにこれを表示する方が良いと思った。 – Saypontigohe

答えて

0

あなたが試すことができ:「BY TERMINATED

LOAD DATA LOCAL INFILE '/your/absolute/path/import.csv' INTO TABLE `test` 
    FIELDS TERMINATED BY ',' 
    LINES TERMINATED BY '\n' ## if windows '\r\n' 
    IGNORE 1 LINES 
    (id, name, price)"; 
+0

まだ動作していない、同じエラーを得る:( – Saypontigohe

+0

申し訳ありません、あなたのメッセージを見ました! 「local_infile」LIKE SHOWグローバル変数、それがOFFで、それをONに設定されていることを述べている場合:「on」に設定されてGLOBAL local_infile =;その後、再びチェック –

+0

まだあなたがあなたのクエリを実行する前に、使用することができます動作しない場合:$ dbcon-> mysqli_initを(! ); $ dbcon-> options(MYSQLI_OPT_LOCAL_INIFILE、true); –