【问题标题】:Codeigniter/Mysql: Column count doesn't match value count with insert_batch()?Codeigniter / Mysql:列数与insert_batch()的值计数不匹配?
【发布时间】:2012-05-27 09:48:45
【问题描述】:

好的,所以我在一个数组中有一个庞大的条目列表(比如 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 行的值数不匹配。

现在,这根本没有意义。列与数组中的键相同,值是键值。那么,为什么它不起作用?

有什么想法吗?

【问题讨论】:

  • 请提供CI的版本
  • 将系统文件夹更新为最新更新,2.1.0。仍然有同样的错误。我将尝试遍历数组并用 insert() 代替。会回来更新。

标签: mysql codeigniter bulkinsert


【解决方案1】:

user_id 在某些情况下原来是null,这就是导致错误的原因。

编辑:如果您将 insert_batch() 替换为在数组键上运行 insert() 的循环,您将获得更清晰的错误消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    相关资源
    最近更新 更多