2014-02-07 70 views
1

我有一個表學生,表結構是遵循如何使用MySQL查詢

student_id | name | class| 
------------------------- 
2-12-2013 | test | 3 | 
------------------------- 
2-13-2013 |test2 | 5 | 
------------------------- 
在這個表我想添加新的記錄

找到表中的最後插入VARCHAR值,其student_id數據成爲2- 14-2013。爲此,我想獲得最後插入的student_id。我怎麼能通過MySQL查詢。上午使用mysql_insert_id()但它不工作,如何解決這個問題?

+1

你可以爲'id'添加一個自動遞增列,然後使用'mysql_insert_id' –

+0

mysql_insert_id()僅在最後一次插入的主鍵自動遞增時觸發http://in2.php.net/mysql_insert_id –

+0

您的表中是否設置了任何主鍵? –

回答

0

定義你的學生表如下圖所示: -

student_id | add_date | name | class| 
-------------------------------------- 
1   | 2013-12-2 | test | 3 | 
-------------------------------------- 
2   | 2013-13-2 |test2 | 5 | 
-------------------------------------- 

student_id數據將INT汽車increamented主鍵

然後執行查詢象下面這樣獲得最後插入的ID: -

select student_id from student order by student_id desc limit 1; 
+0

假設2個用戶是同一時間的addind記錄,那麼如何才能得到確切的最後插入的ID? –

+0

@ChintanGor我認爲你沒有經驗的MySQL。檢查http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html – ripa

+0

LOL夫人我認爲我是你的經驗,但我可以理解,如果有時間順序通過ID返回僅返回降序值, 您對單用戶的節點如果多個用戶在同一時間插入數據會發生什麼 那時我將收到您插入的ID –

1

嗨你必須設置主鍵到你的表作爲整數自動增量,那麼你可以使用這最後插入的ID

$con = mysql_connect("localhost", "root", "", "chirag2"); 
$sql = "INSERT INTO test_student (student_id,name,class)values('3-12-2013','test1','3')"; 
$res = mysql_query($con, $sql); 

echo mysql_insert_id($con); 
die; 

注意:您需要截斷表之前改變它,並設置新的主鍵,把它所以要備份在此之前