2011-04-14 68 views
2

當PHP腳本每秒有數百次查詢時會發生什麼?它是否會影響這些函數,是否有保證它們會返回當前腳本中最後一個插入語句的最後一個插入的ID?它會返回當前腳本中最後一次選擇的行數嗎?如果有新的插入或同時從另一個腳本中選擇(在FOUND_ROWS()的情況下)會怎麼樣?這是一個問題嗎?MySQL LAST_INSERT_ID()和FOUND_ROWS()

回答

2

從文檔: 對於LAST_INSERT_ID(),最近生成的ID被保存在服務器上的每個連接

這意味着,只要你不執行其他任何插入行在您的連接上,該值將保留供您檢索。

對於FOUND_ROWS: 通過FOUND_ROWS()可用的行計數是暫時的,並且不打算在SELECT SQL_CALC_FOUND_ROWS語句之後的語句後可用。

這意味着您必須在調用SQL_CALC_FOUND_ROWS之後立即執行它。這似乎也是連接範圍的,但文檔中沒有任何明確說明。