我正在尝试解析一个小的CSV文件并将记录插入MySQL。
我遇到的问题是CSV有150行,但似乎只插入了2行:
$file = new SplFileObject($uploadedFile);
$separator = ',';
$rowCounter = 1;
$errors = array();
$fh = fopen($uploadedFile, 'r');
if(!$fh) die('File no good!');
// Get headings
$headings = fgetcsv($fh, 0, ',');
$num_cols = count($headings);
$num_rows = 1;
// Read the file as csv
while ($row = $file->fgetcsv($separator)) {
//missed product if num columns in this row not the same as num headings
if (count($row) != $num_cols) {
$row = array_pad($row, $num_cols, NULL);
}
for ($i=0; $i<count($headings); $i++) {
$raw_prod[$headings[$i]] = $row[$i];
}
$item = new Item();
$item->name = $raw_prod['NAME'];
$item->age = $raw_prod['AGE'];
$item->location = $raw_prod['LOCATION'];
$item->save();
}
如果我var_dump($item)
我获得了所有150条记录,但只有2条记录被插入。
我只是不明白为什么会发生这种情况
由于
答案 0 :(得分:0)
这一行
while ($row = $file->fgetcsv($separator)) {
应该是
while (($row = $file->fgetcsv($separator)) !== false) {