【问题标题】:read CSV in Yii Framework在 Yii 框架中读取 CSV
【发布时间】:2014-05-28 07:05:17
【问题描述】:

我正在阅读 yii 框架中的 csv 文件。它遍历文件中的每个单词,但只保存最后一个单词。例如,我的 csv 文件中有以下单词。

First
Second
Third
Fourth

以下是我循环文件的代码。

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

它只是在我的数据库中保存值“第四”。请指导。

【问题讨论】:

  • 它不会正常工作,而是一直插入、更新同一行吗?这可以解释为什么你只看到最后一行。
  • 你需要在循环中初始化 $model .. @Chococroc 是对的
  • @zzlalani,添加一个答案,我不知道 YII 是如何工作的,所以,你应该得到答案的优点,;D
  • Welldone @Chococroc 你是对的。我已经看过很多使用上述代码流读取 csv 的教程,没有人在循环中重新初始化模型。谢谢。脱帽

标签: php yii fgetcsv


【解决方案1】:

正如 cmets 中的 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();
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-29
    相关资源
    最近更新 更多