как получить последний идентификатор вставки после запроса вставки в активной записи codeigniter

у меня есть запрос вставки (активный стиль записи), используемый для вставки полей формы в таблицу MySQL. Я хочу получить последний автоинкрементное ID для вставки как вернуть стоимость моего запроса, но у меня есть некоторые проблемы с ним.

внутри контроллера:

function add_post(){
    $post_data = array(
        'id'            => '',
        'user_id'   =>  '11330',
        'content'   =>  $this->input->post('poster_textarea'),
        'date_time' => date("Y-m-d H:i:s"),
        'status'        =>  '1'
    );
    return $this->blog_model->add_post($post_data);
}

и внутри модели:

function add_post($post_data){
    $this->db->trans_start();
    $this->db->insert('posts',$post_data);
    $this->db->trans_complete();
    return $this->db->insert_id();
}

Я ничего не получаю как возврат add_post в model

5 ответов


попробуй такое

function add_post($post_data){
   $this->db->insert('posts', $post_data);
   $insert_id = $this->db->insert_id();

   return  $insert_id;
}

в случае нескольких вставок вы можете использовать

$this->db->trans_start();
$this->db->trans_complete();

транзакция здесь не нужна, этого должно быть достаточно:

function add_post($post_data) {
    $this->db->insert('posts',$post_data);
    return $this->db->insert_id();
}

$id = $this->db->insert_id();

С документация:

$this - >db - >insert_id ()

идентификатор вставки при выполнении вставки базы данных.

поэтому вы можете использовать что-то вроде этого:

$lastid = $this->db->insert_id();

вы должны использовать $lastId = $this->db->insert_id();