2013-09-21 63 views
0

如何獲取剛剛爲當前用戶插入的id(如果受AUTO_INCREMENT控制)?插入新行後獲取AUTO_INCREMENT值

(我需要的編號用於其他用途)

注:一些行可以被刪除,MAX(id)是不是一種選擇。

例:

插入行2

插排3

刪除的行3

插排4個,但MAX(id)回報3 ..

非常感謝您!

+0

您已經標記了這個問題[標籤:PHP]:您正在使用哪個API? – eggyal

回答

2

隨着PDO:

$db->lastInsertId(); // $db is the PDO object 

隨着MySQLi的OOP:

$db->insert_id; // $db is the MySQLi object 

隨着MySQLi的程序:

mysqli_insert_id($db); // $db is the connection variable 

如果您使用的是舊版本的MySQL API,開關。

+0

我不明白如何使用它.. mysql_insert_id返回int,它只是進入一個變量。但mysqli_insert_id返回混合,我不知道如何使用它.. – NirPes

+0

你能幫助我嗎? – NirPes

+0

您是使用新的MySQLi API還是舊的MySQL?你可能使用後者,因爲'mysql_insert_id'返回一個整數(這是它應該做的)。 – Mark

0

嘗試

選擇@@身份

這應該在標識列返回的最後一個值

-1

可以使用mysql_insert_id

<?php 
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db('mydb'); 

mysql_query("INSERT INTO mytable (product) values ('kossu')"); 
printf("Last inserted record has id %d\n", mysql_insert_id()); 
?> 

編輯:

mysql_insert_id已棄用。現在它mysqli_insert_id

+0

'mysql_ *'已棄用。不要使用它。 – Mark

+0

我不明白如何使用它..'mysql_insert_id'返回int,它只是進入一個變量。但'mysqli_insert_id'返回混合',我不知道如何使用它.. – NirPes

0

使用mysql_insert_id()或mysqli_insert_id()

+0

我不明白如何使用它.. mysql_insert_id返回int,它只是進入一個變量。但mysqli_insert_id返回混合,我不知道如何使用它.. – NirPes

+0

對於mysqli_insert_id你需要傳遞連接變量到函數。像mysqli_insert_id($ con);你也可以使用LAST_INSERT_ID()。 –