2012-10-03 38 views
1

可能重複:
php/MySQL insert row then get 'id'如何使用INSERT INTO獲取當前ID號?

我該怎麼辦獲得當前的ID號與INSERT INTO?

mysql_query("INSERT INTO mytable(id,a,b) VALUES(null,3,current ID) "); 

mysql_query(" 
    INSERT INTO tablo(id,a,b) 
    VALUES(null,3,this ID number) 
      ^  ^
      |   | 
      | <Copy ID> | 
      |____________| 
"); 
+0

你是什麼意思下目前的ID?這是插入到查詢運行的位置?更具體地說 – rsz

+2

他意味着他想要做一個插入SQL並獲取id,他不知道它是什麼,因爲他傳遞null。這裏的答案http://stackoverflow.com/questions/897356/php-mysql-insert-row-then-get-id –

+0

我的問題是在記錄過程中失真。 固定它。 –

回答

4

使用mysqli_insert_id(),它返回上次查詢中使用的自動生成的id。

閱讀「PHP mysql_insert_id() Function」或「mysql_insert_id」。

例子:

<?php 
$query= "INSERT INTO table_name VALUES ('a','b','c')"; 
$result = mysql_query($query); 
echo "INSERT statement ID is" . mysql_insert_id(); 
?> 

,做閱讀mysql_insert_id頁面上的PHP文件中的紅色的大盒子,從mysqli

查看PHP Documentation有關更多參考。

+0

我在嘗試,但不工作,mysql_query(「INSERT INTO tablo(id,a,b)VALUES(null,5,mysql_insert_id())」);我不需要MySQLi。我想要MySQL。 –

+0

除非你絕對必須,否則你真的不想使用'mysql_query'。正確使用是危險的,也更難。 – tadman

1

基本上你可以使用mysqli_insert_id函數。

如PHP手冊中指出:

的mysqli_insert_id()函數返回由查詢生成的ID在表上與具有AUTO_INCREMENT屬性的列。如果最後一個查詢不是INSERT或UPDATE語句,或者如果修改後的表沒有包含AUTO_INCREMENT屬性的列,則此函數將返回零。

0

您可以嘗試獲取選定表格中使用的下一個序列值。請檢查MySQL是否有任何函數來獲取此值。如果您在執行SQL語句時需要這個數字,那麼使用PHP函數是不可能的。

檢查「Get Auto Increment value with MySQL query」。