回答
如果您使用的是PHP數據庫,我強烈建議使用PDO(簡單的數據庫包裝器,適用於大量常見數據庫引擎,越來越多的支持,PHP canon的一部分),因此如果您的數據庫使用PDO::lastInsertId支持相當於mysql_insert_id。
請勿使用「SELECT max(id)FROM table;」因爲它可能會導致以後出現嚴重的奇怪和難以發現的錯誤。
* ** UPDATE:好的,您使用的是ODBC,並且我懷疑您是在odbc_cursor之後。我仍然堅守使用PDO的強烈建議,因爲它有一個ODBC驅動程序。 (我眼中的ODBC是一個脾氣暴躁的老人,他的呼吸在駕駛着他的卡車正在分崩離析,因爲臀部和有效的PDO傢伙在他們性感的VOLVO S90上跑過去了)
它取決於數據庫類型,但查看你的rdbm的SEQUENCE語法。
您是否將行通過PHP插入數據庫?如果是這樣,也許你可以使用uniqid()生成一個唯一的主鍵 - 那麼你將知道該ID而不必查詢數據庫。
如果無法更新密鑰類型,也許你仍然可以插入一個唯一的ID,當你做的插入,這樣你就可以做這樣的查詢:
SELECT id FROM mytable WHERE rowid = '$myuniqueid'
這樣你確保您從數據庫中撤回正確的ID - 這是一個比MAX(id)更好的解決方案。
使用
SELECT max(id) FROM table;
應該從事務內部罰款,或不ODBC不支持事務?
SELECT @@ IDENTITY AS標識
如果你有MySQL的ODBC下 - 你可以使用一個查詢:
"SELECT LAST_INSERT_ID();"
它具有執行INSERT查詢後要mmediately執行。
對於其他數據庫 - 使用其他特定的查詢...
我用 「SELECT @@ IDENTITY AS LastID」,用PHP/MSSQL工作時,通過ODBC。這在SQL 2005服務器(或者是2000?)下帶來了一些問題。 無論哪種方式,如果你這樣做:
SET NOCOUNT ON
[NOW INSERT YOUR INSERT SQL QUERY]
SELECT @@IDENTITY AS LastID
你應該在任何MSSQL Server版本就好了。
「SET NOCOUNT ON」將阻止sql server發送像'1 rows inserted'這樣的消息,這將使您的腳本正常工作。
在MySQL中使用SQL Server中
SELECT *
FROM table_name
ORDER BY Id Desc
LIMIT 1
使用
SELECT top 1 *
FROM table_name
ORDER BY Id Desc
- 1. 如何獲取PHP中的最後一個插入的標識
- 2. 如何從另一張表中獲取最後一個插入標識在php
- 3. 獲取mysql中最後一個插入行的標識
- 4. 在Informix中從SQL本身獲取最後插入的標識
- 5. PHP來SQLSERVER,獲取最後插入的標識
- 6. 學說 - PHP致命錯誤:'無法獲取最後一個插入標識符'。
- 7. asp mvc從savechanges獲取最後插入標識()
- 8. 從最後插入的行中獲取最後一個插入ID
- 9. 從DB使用實體框架獲取標識列中的最後一個自動插入標識
- 10. 如何在Eloquent ORM laravel中獲取最後一個插入標識
- 11. Nodjs sequalize如何獲得最後一個插入標識
- 12. 獲取Google Apps腳本中最後插入的行的標識
- 13. MS Access TableAdapter插入後獲取標識
- 14. 獲取最後一個插入的ID
- 15. 獲取最後一個插入ID
- 16. 如何在php中獲取最後一個插入日期MYSQL
- 17. 如何從表中獲取最新插入的標識?
- 18. 在Excel中獲取最後一個插入ID ADODB連接到MySQL數據庫
- 19. Informix:如何獲取最後插入的記錄的標識
- 20. 獲取最後插入的mysql行的標識
- 21. 如何從Zend Framework中獲取最後一個插入UUID?
- 22. DB2如何從表中獲取最後一個插入ID
- 23. 如何獲取插入到oracle中的最後一行的標識
- 24. php mysql獲取最後一個插入行的ID給出錯
- 25. PHP無法獲取正確插入的最後一個ID
- 26. PHP Postgres:獲取最後一個插入ID
- 27. 在mysql和php中添加1到最後一個插入的行的標識
- 28. 作爲連接查詢插入後如何獲取最大值
- 29. 從插入獲取最後一個自動增量值?
- 30. 如何從插入的行獲取最後一個ID?
的數據庫您使用的?他們有不同的方法來回應插入行的ID。 – 2009-04-23 13:31:14
那麼,這是什麼新的數據庫....? – 2009-04-23 13:31:20
它不是一個新的數據庫。在ODBC連接下使用緩存數據庫 – praveenjayapal 2009-04-23 13:33:36