Heim  >  Artikel  >  Datenbank  >  Wie rufe ich die letzte automatisch inkrementierte ID nach einem Einfügevorgang im aktiven CodeIgniter-Datensatz ab?

Wie rufe ich die letzte automatisch inkrementierte ID nach einem Einfügevorgang im aktiven CodeIgniter-Datensatz ab?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-04 22:17:02795Durchsuche

How to Retrieve the Last Auto-Incremented ID After an Insert Operation in CodeIgniter Active Record?

Abrufen der letzten automatisch inkrementierten ID mit CodeIgniter Active Record

Frage:

Sie Sie versuchen, die letzte automatisch inkrementierte ID abzurufen, nachdem Sie einen Einfügevorgang mit dem Active Record von CodeIgniter durchgeführt haben, aber die Methode add_post() in Ihrem Modell gibt einen leeren Wert zurück.

Im Controller:

<code class="php">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);
}</code>

Im Modell:

<code class="php">function add_post($post_data){
    $this->db->trans_start();
    $this->db->insert('posts',$post_data);
    $this->db->trans_complete();
    return $this->db->insert_id();
}</code>

Antwort:

Das Problem liegt in der Reihenfolge Operationen in Ihrer add_post()-Methode im Modell. Um die letzte automatisch inkrementierte ID nach dem Einfügevorgang korrekt abzurufen, müssen Sie:

  1. Zuerst den Einfügevorgang ausführen, indem Sie $this->db->insert('posts', $post_data)-Methode.
  2. Dann rufen Sie die zuletzt eingefügte ID mit der Methode $this->db->insert_id() ab.
  3. Gibt die zuletzt eingefügte ID als Ergebnis zurück add_post()-Methode.

Lösung:

<code class="php">function add_post($post_data){
    $this->db->insert('posts', $post_data);
    $insert_id = $this->db->insert_id();

    return $insert_id;
}</code>

Hinweis:

Wenn Sie performen Wenn Sie mehrere Einfügungen in einer einzigen Transaktion durchführen, können Sie die Methoden $this->db->trans_start() und $this->db->trans_complete() verwenden, um die Transaktion zu beginnen und zu beenden.

Das obige ist der detaillierte Inhalt vonWie rufe ich die letzte automatisch inkrementierte ID nach einem Einfügevorgang im aktiven CodeIgniter-Datensatz ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn