我遇到與列/字段不匹配的問題,當我嘗試將數據插入到MySQL中。我目前的表格有306列/字段(尚未規範化/優化,但將來會出現)。前306個字段總是正確的數據,需要保存在mysql中。前306個字段後的所有內容都可以刪除/清除。這是我的PHP代碼注射:php帶或刪除額外的列/逗號分隔爲mysql
$source = "http://www.aviationweather.gov/adds/dataserver_current/current/tafs.cache.csv";
$file = file($source);
for($i = 0; $i < 6; $i++) array_shift($file);
foreach($file as $line) {
$csv = str_getcsv($line);
if (!$db->query("INSERT INTO tafs VALUES('" . implode("','", $csv) . "');")) {
} else {
$n++;
}
}
的CSV源文件每分鐘更新一次,有時就會有正確的306列,其他時間將有1500-2000沒有明顯的原因。這打破了我的可怕可怕,因爲數據是高度動態的我不能使用rtrim功能= \ ...
任何有什麼想法?我一直堅持一段時間...花了一個小時尋找php命令/例子,大約2個小時的mysql命令...我錯過了什麼嗎?
感謝您的支持,7月4日開心!
-Mikael
306列:是你需要在你的數據庫結構的一些認真思考。而不是使用str_getcsv嘗試fgetcsv。需要說明的是,實際的csv文件有時包含2000列,或者當您執行implode時,它包含額外的列? – Kris
csv文件可以...儘管我有306列,但我的最大行大小隻有3000字節,遠低於最大65k字節。我試過str_getcsv和fgetcsv都導致相同的問題。 – Mikael