CodeIgniter 的 insert_id() 函数总是返回 1

CodeIgniter's insert_id() function is always returning 1

我有以下内容:

function insert_data($table=0,$data)
    {
        if($table !== 0)
        {
            if ($this->db->table_exists($table))
            {
                $this->db->insert($table,$data);
                return $this->db->insert_id();
            }
        }
        return 0;
    } 

我用

称呼它
...
$insert_info = array(
    'event_id'      =>$id,
    'checklist_name'=>$_POST['event_name'].' Checklist',
    'checklist_type'=>2,
    'status'        =>1,
    'created_by'    =>$this->session->userdata('superadmin_id'),
    'created_date'  =>date('Y-m-d H:i:s'),
    'updated_by'    =>$this->session->userdata('superadmin_id'),
    'updated_date'  =>date('Y-m-d H:i:s')
    );
$new_checklist_id = $this->db->insert('checklist_event',$insert_info);
echo $new_checklist_id;
die();
...

但是,1 总是被回显。我可以确认 table 中有十几条记录,所以不确定为什么每次都返回 1。有什么建议吗?

这是table

的结构

However, 1 is always echo'd

你实际上回显了 Query Builder Class insert() function 的 return,这是对还是错。

使用这种方法:

$this->db->insert('checklist_event',$insert_info);
$new_checklist_id = $this->db->insert_id();
echo $new_checklist_id; die();

您似乎根本没有调用函数 insert_data($table=0,$data)