2016-10-12 14 views
0

テキストファイルから複数の行をテーブルに挿入しようとしています。 以下のコードは、テキストファイルの最初の行のみを挿入しているようです。それをループして残りの行を挿入するように変更するにはどうすればよいですか?PHPを使用してデータベースに挿入する - 1行だけを挿入する

$rwy = "./rwy.txt"; 

if (file_exists($rwy)) { 
sql('TRUNCATE rwy_current'); 

$array = file($rwy); 

foreach ($array as $line) { 
    $bits = explode("\r\n", $line); 
    foreach ($bits as $row) { 
     $col = explode("\t", $row); 
     sql("INSERT INTO rwy_current (arpt_ident, high_ident, low_ident, high_hdg, low_hdg, length, surface, pcn, he_elev, he_slope, he_tdze, le_elev, le_slope, 
       le_tdze, he_true_hdg, le_true_hdg, heland_dis, he_takeoff, leland_dis, le_takeoff, cycle_date) 
      VALUES ('$col[0]', '$col[1]', '$col[2]', '$col[3]', '$col[4]', '$col[5]', '$col[7]', '$col[8]', '$col[13]', '$col[14]', '$col[15]', '$col[30]', 
       '$col[31]', '$col[32]', '$col[43]', '$col[44]', '$col[46]', '$col[47]', '$col[48]', '$col[49]', '$col[50]') 
      "); 
     } 
    } 
} 
+0

私は、これ以上のデータはありますが、私はこれがcsvだと思っています。 read fileコマンドとstr_getcsvコマンドを使用する必要があります。 print_rとvar_dumpはあなたの問題をデバッグするあなたの友達です –

+0

'file($ rwy)'はすでに 'explode(" \ r \ n ")'を実行していますので、 'foreach($ array as) $ row) ' – apokryfos

+0

テキストファイルはTSVで、$ rowのvar_dumpは私に与えます:string(0)" " –

答えて

0
alter table rwy_current add primary key (arpt_ident, high_ident, low_ident); 

問題がデータベースにあった、それを解決しました。私は1つのプライマリキーしか持っていませんでした。

関連する問題