这不像我们之前讨论的那样有效,出于某些原因,我已经为上传的文件创建了一些$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
语句中的整个语句在某处是错误的。真的很感激对此的一些帮助,我需要在明天(星期一)开始工作
答案 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);
检查这是否适合您