2016-03-02 26 views
0

使用Jamie Rumbelow的My_Model和mySQL。我無法找到,如何在特定表格中獲取最後插入的ID。例如,如何獲取最後或下一個Id

Table_A 

--------+ 
id  | 
--------+ 
1  | 
--------+ 
2  | 
--------+ 

我試試下面的代碼,但它返回int(0)

$id = $this->Model_teacher->_database->insert_id(); 
+0

請說明是什麼讓你決定嘗試'$這個 - 什麼框架或你正在使用的庫,你的代碼首先插入, > Model_teacher - > _數據庫 - > INSERT_ID()'。現在還不清楚有人能幫助你。 – skrilled

+1

我使用PHP CodeIgniter並使用Jamie Rumbelow的My_Model。我想獲得表的最後一個ID(例如teacherId)...我想操縱的是其他列的Id然後我想觸發實際的插入語句。 – fresher

回答

1

我發現您正在使用的圖書館。https://github.com/jamierumbelow/codeigniter-base-model/blob/master/core/MY_Model.php

public function insert($data, $skip_validation = FALSE) 
    { 
     if ($skip_validation === FALSE) 
     { 
      $data = $this->validate($data); 
     } 
     if ($data !== FALSE) 
     { 
      $data = $this->trigger('before_create', $data); 
      $this->_database->insert($this->_table, $data); 
      $insert_id = $this->_database->insert_id(); 
      $this->trigger('after_create', $insert_id); 
      return $insert_id; 
     } 
     else 
     { 
      return FALSE; 
     } 
    } 

當插入成功,則返回$insert_id;

$id = $this->Model_teacher->insert(...); 
+0

是否有可能得到最後插入的Id。所以我可以做+1併爲其他列準備值,然後準備最終的插入數據。否則,我需要先插入,然後更新相同的插入記錄。 – fresher

0

試試這個:

返回最後插入行的ID

$con -> lastInsertId(); 
+0

有一點說明總是比代碼更好。 – urfusion

+0

@urfusion:'lastInsertId' ='last + Insert + Id' 不清楚? – AliN11

+0

非常清楚。我在談論應該使用的標準。 – urfusion