2013-01-03 24 views
0

好吧我一直在尋找這一段時間,並沒有真正找到我的問題的答案。如何取回最後一個插入的行mysql

目前,我得到這個語法:

$sql = sprintf("INSERT INTO users (***, ***, ***, ***) VALUES ('%s', '%s', '%s', %d)", mysql_real_escape_string($***), mysql_real_escape_string($***), mysql_real_escape_string($***), $***); 
if(!mysql_query($sql)) { die('error: '.mysql_error()); } 
return mysql_insert_id(); 

而且這工作得很好,當我想獲得一個項目從最後插入的行回來,我可以做的ID,我回去另一個查詢。

但我的問題是,是否有可能一次退回整行?這樣我就不必再運行另一個查詢來從最後插入的行中獲取項目。

+0

你想要一個單一的功能,將內返回所有的值記錄你剛插入的內容?如果是這樣,我不知道任何內置的東西都可以做到。 – 2013-01-03 08:13:21

+0

是的,這正是我想要的。 – Augus

+0

你可以變得聰明,並創建一個存儲過程或函數,將爲你做到這一點,但沒有任何內置的,將幫助你超越你已經使用的... – 2013-01-03 08:16:11

回答

1

不, 沒有這樣的實現。

我認爲這是正確的,因爲insert syntax較爲複雜(參見例如on duplicate keyinsert ignore),並且在某些情況下,預期收益可能是不明確的

+0

這就是我想的,很害怕。有點奇怪,但運行2查詢這樣一個簡單的任務。 – Augus

+0

@胡古 - 我不知道你說的那麼簡單 - 就像chumkiu暗示的那樣。它必須動態返回結果集(所有應用的字段),而不是單個整數值(ID)。 – 2013-01-03 08:38:11

相關問題