好吧,所以我在数组中有一个巨大的列表(如500+),我需要插入到MySQL数据库中。
我有一个填充数组的循环,如下所示:
$sms_to_insert[] = array(
'text' => $text,
'contact_id' => $contact_id,
'pending' => $status,
'date' => $date,
'user_id' => $this->userId,
'sent' => "1"
);
然后我使用内置的insert_batch()函数将其发送到数据库:
public function add_sms_for_user($id, $sms) {
//$this->db->delete('sms', array("user_id" => $id)); Irrelevant
$this->db->insert_batch('sms', $sms); // <- This!
}
我得到的错误信息如下: 列数与第1行的值计数不匹配。
现在,这根本没有意义。列与数组中的键相同,值是键值。那么,为什么它不起作用?
有什么想法吗?
答案 0 :(得分:2)
user_id
原来是null
,这是造成错误的原因。
编辑:如果将insert_batch()替换为在数组键上运行insert()的循环,您将获得更清晰的错误消息。