2016-05-14 10 views
-1

特定の.cvsフォーマットで動作するように自分のコードを書きましたが、それは自分が持っていたファイルのフォーマットで動作していました。 .cvsファイルの形式が変更されました。PHP/MySQLが間違ったカラムに挿入される

これで、すべてが挿入されているように見えましたが、それは移行しました。具体的には、すべてが1列全体にわたって右に移動しています。

コードを変更してさらに右に移動することはできましたが、左に移動すると失敗しました。ここで

問題を抱えている私のコードの一部:

if($deleteSuccess == 1){ 

    echo "Now inserting all new records"; 
    $handle = fopen($target_file, "r"); 
    $count = 0; 
    while (($data = fgetcsv($handle, 0, ",")) !== FALSE) { 
     $name = $data[0]; 
     $correct0 = str_replace("'", "", $name); 
     $correct1 = str_replace("'", "", $data[1]); 
     $correct2 = str_replace("'", "", $data[2]); 
     $correct3 = str_replace("'", "", $data[3]); 
     $correct4 = str_replace("'", "", $data[4]); 
     $correct5 = str_replace("'", "", $data[5]); 
     $correct6 = str_replace("'", "", $data[6]); 
     $correct7 = str_replace("'", "", $data[7]); 


     $import="INSERT into DVDCatalog.testtable(`Volume Name`,`DVD Number`,`Type`,`Category`,`Date`,`Author`,`Availablity`,`Picture`) values('$name','$correct1','$correct2','$correct3','$correct4','$correct5','$correct6','$correct7')"; 
     $count = $count + 1; 
     mysqli_query($conn, $import); 
     if(mysqli_error($conn)){ 
      echo "<br> Problem with --> ".$import."<br>"; 

感謝。

+0

あなたは今それを持っている方法は、に少し混乱しているので、私は、あなたの変数のためのより説明的な名前を使用して、 '$のdvd_num'またはそのようなようなものをお勧めします読む。 – Jhecht

+1

なぜ '$ correct0'ではなく' $ name'を使用していますか? – Marius

+0

また、必要な2つのエラーがなければ、実際に使用しているテーブルの 'create table'と使用しようとしているファイルのコピー(または単に文字列バージョン投稿に追加) – Jhecht

答えて

0

すべてが右に1列の上に移動した場合、あなたは、その後、使用するデータ等、$data[1]$data[0]にあるように、あなたがするために使用されるように挿入データを同じに取得するには$data[1]$data[2]などになりました$data[0]で何もしないでください。これはCSVファイルに追加された新しいフィールドですが、古い形式には対応していません。

だから、次のようになります。

$correct0 = str_replace("'", "", $data[1]); 
    $correct1 = str_replace("'", "", $data[2]); 
    $correct2 = str_replace("'", "", $data[3]); 
    $correct3 = str_replace("'", "", $data[4]); 
    $correct4 = str_replace("'", "", $data[5]); 
    $correct5 = str_replace("'", "", $data[6]); 
    $correct6 = str_replace("'", "", $data[7]); 
    $correct7 = str_replace("'", "", $data[8]); 
関連する問題