CSV插入数据库

时间:2013-04-07 17:58:27

标签: codeigniter

这不像我们之前讨论的那样有效,出于某些原因,我已经为上传的文件创建了一些$vars

Code available here (Pastebin).

但实际上从未插入任何东西

  • 执行var_dump($csv_row)时,我得到:bool(false)
  • var_dump($fh)显示:resource(89) of type (stream)
  • var_dump($insert_str)显示csv文件中的所有1700条记录(显然太大,无法在此处发布)

所以我猜测while语句或if语句中的整个语句在某处是错误的。真的很感激对此的一些帮助,我需要在明天(星期一)开始工作

2 个答案:

答案 0 :(得分:0)

您似乎错误地使用了codeigniter数据库库。我可以看到

$this->db->set($insert_str);

但未找到$this->db->insert()set()方法只对跟随update()insert()的{​​{3}}有用,搜索$this->db->set()

您要么使用$this->db->insert_batch()(在同一个文档页面上,不幸的是没有部分的直接链接)表单,并使用您的记录构建一个数组数组(这样您就不必创建一个长的数组) sql string也是)。 或者您可以使用$this->db->query(),只需将$insert_str提供给您现在呼叫$this->db->set()的地方。


根据你的问题:

  

var_dump($ insert_str)显示csv文件中的所有1700条记录

所以我会排除while循环或if无效的可能性。

答案 1 :(得分:0)

将此代码放在控制器的顶部或在读取csv文件之前

ini_set('auto_detect_line_endings', true);

检查这是否适合您