萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> Mysql插入記錄後返回該記錄ID

Mysql插入記錄後返回該記錄ID

   最近和Sobin在做一個精品課程的項目,因為用到一個固定的id作為表間關聯,所以在前一個表插入數據後要把插入數據生成的自增id傳遞給下一個表。研究了一番決定使用Mysql提供了一個LAST_INSERT_ID()的函數。 liehuo.net

LAST_INSERT_ID() (with no argument) returns the first automatically generated value that was set for an AUTO_INCREMENT column by the most recently executed INSERT or UPDATE statement to affect such a column. For example, after inserting a row that generates an AUTO_INCREMENT value, you can get the value like this:

Copy to Clipboard

  mysql> SELECT LAST_INSERT_ID();

  -> 195

  簡單說來,就是這個函數將返回插入的那條記錄在表中自增的那個字段的值,一般我們都給那個自增字段命名為ID。這樣就可以返回剛插入的記錄的ID值了。 liehuo.net

  一個簡單的例子:

  Copy to Clipboard

  $query="INSERT INTO `testtable` (`clou1`,`clou2`) VALUES ('testvalue','test')";

  mysql_query($query);

  $query="SELECT LAST_INSERT_ID()";

  $result=mysql_query($query);

  $rows=mysql_fetch_row($result);

  echo $rows[0];

  這個函數是基於connection的,也就是不會被其他客戶端的connection影響到,所以結果是准確的。如果使用select max(id) from table,在高密度的插入請求下,是有可能出問題的,返回錯誤值

copyright © 萬盛學電腦網 all rights reserved