2011-09-21 53 views

回答

3

我使這個函數變得很容易:)...如果你有多於一個的數據庫資源只是將它傳遞給mssql_query請求。這將檢索該資源連接上生成的最後一個唯一標識。

mssql_query("insert into data(name) values('bob')"); 
$id = getLastId(); 

function getLastId() { 
    $result = mssql_fetch_assoc(mssql_query("select @@IDENTITY as id")); 
    return $result['id']; 
} 
+0

你可能想看看SCOPE_IDENTITY過,因爲在一個稍微不同的方式既@@ IDENTITY和SCOPE_IDENTITY工作。 –

+0

在你的解決方案中,我需要運行一個額外的查詢。我們不這樣做,而不需要在系統中運行額外的查詢? –

+0

nope。它的唯一插入,所以不會是一個問題。也因爲它使用相同的數據庫鏈接,它真的不會有所作爲。你可以編寫一個存儲過程,它可以返回你想要的任何東西,但如果你不需要它,這會更容易。 – duante

4

像這樣的作品非常漂亮

$sql = "insert into tables(field) values (value);SELECT SCOPE_IDENTITY()"; 
$db = getConnection(); 
$results = mssql_fetch_assoc(mssql_query($sql)); 
$lastid=$results['computed'];