2014-05-28 5 views
1

Я читаю файл csv в структуре yii. он перебирает каждое слово в файле, но сохраняет только последнее слово. Например, у меня есть следующие слова в моем файле csv.читать CSV в Yii Framework

First 
Second 
Third 
Fourth 

следующий мой код, который проходит через файл.

$fileHandler=fopen("upload.csv",'r'); 
     if($fileHandler){ 
     while($line=fgetcsv($fileHandler,1000)){ 
      $model->image_url=$line[0]; 
       $model->save(); 
     } 
    } 

это только экономия значения «четвертое» в моей дБ. Пожалуйста, направляйте.

+4

Не будет работать правильно, но вместо того, чтобы вставлять, обновлять все время в одной строке? Это объясняет, почему вы видите только последнюю строку. – Chococroc

+1

вам нужно инициализировать модель $ с помощью цикла. @Chococroc прав – zzlalani

+0

@zzlalani, добавьте ответ с ним, я понятия не имею, как работает YII, поэтому вы заслуживаете заслуги в ответе, D – Chococroc

ответ

3

Как Chococroc предложено в комментариях, Вам необходимо инициализировать $model с в петле, а из вне стороны, поскольку она сохранила значение в первой итерации, а затем обновить один и тот же объект (т.е. такие же строки в базе данных) для остальной части итераций

$fileHandler=fopen("upload.csv",'r'); 
if($fileHandler){ 
    while($line=fgetcsv($fileHandler,1000)){ 
     $model = new CLASS_NAME; 
     $model->image_url=$line[0]; 
     $model->save(); 
    } 
}