好吧,我有一个数组中的大量条目列表(大约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行的值计数不匹配。
现在,这完全没有意义。列与数组中的键相同,值是键值。那么,为什么不起作用呢?
有什么想法吗?

最佳答案

user_id在某些情况下被证明是null导致了错误。
编辑:如果将insert_batch()替换为对数组键运行insert()的循环,则将获得更清晰的错误消息。

关于mysql - Codeigniter/Mysql:列计数与insert_batch()的值计数不匹配?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10676023/

10-13 06:31