-1
我的任務是解析製表符分隔的文件並將值插入到數據庫中。在下面找到一個選項卡分隔文件。如何解析製表符分隔的文件到mysql數據庫
"030-36-2" 0 0 14 "P"
"030-38-2" 0 0 14 "S"
"030-40-2" 0 0 14 "S"
"031-2-2" 1 0 "O"
"031-3-2" 4 0 "O"
"032-36-26" 0 0 14 "S"
"032-38-26" 0 0 14 "S"
"032-40-26" 0 0 14 "S"
"070-140-161" 0 0 14 "S"
"070-140-162" 2 0 "D"
"070-83-161" 0 0 14 "S"
我使用fgetcsv我的分隔符設置爲一個標籤(9),但在執行的代碼,我只得到插入到數據庫總價值的一小部分。 這是我的代碼:
if(($handle = fopen("mytabdelimitedfile.txt","r"))!==FALSE){
fgetcsv($handle, 0,chr(9));
while(($data = fgetcsv($handle,1000,chr(9)))!==FALSE){
print_r($data[0]);
$result = mysql_query("INSERT INTO $table (col1,col2,col3,col4,col5) VALUES('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]')");
}
}
第4只記錄不插入,但它與「031-3-2」開始,然後跳過下調至「070-140-162」。我擔心結果可能與某些價值缺失有關,但我似乎無法辨別出一種模式。
有沒有人有這方面的見解?這個問題是否與一些缺失的值有關?有什麼解決方法嗎? (我對源數據沒有任何控制)
另外還有一個注意事項:當我使用Excel =>從文本導入數據=>製表符分隔時,結果是完美的。但是我當然不能使用Excel,因爲數據每小時更新一次。請向正確的方向任何一點都非常感謝。
使用[LOAD DATA INFILE](http://dev.mysql.com/doc/refman/5.6/en/load-data.html)if您可以。 – VMai
用逗號或分號替換標籤,然後更輕鬆地解析它? – Bogdan
我用TAAAB或SPAAACE替換標籤。然後可以方便地將其分解或預分割 –