2012-02-20 45 views
1

我在這同一個腳本頁面中使用這樣的查詢如何在同一個SQL查詢中插入和選擇數據?

INSERT INTO coins VALUES (NULL, '$user_ID', '$title', NOW()) 

現在以後,我需要使用值coin_ID,我只是插在上面的查詢。這是自動增量值,所以我添加了NULL。

如何在同一頁面中使用此coin_ID後,我運行了一些PHP檢查?

感謝

+0

我忘了提及,我打算使用該coin_ID來選擇另一個表中的鏈接列 – 2012-02-20 17:44:24

+0

當我使用該功能時出現此錯誤http://i.imgur.com/f34EJ.png是否可以問題與權限? – 2012-02-20 17:55:58

回答

0

嘗試通過PHP mysql_insert_id功能使用LAST_INSERT_ID()

+0

這個函數實際上是安全的,因爲在當前上下文插入之間存在另一個插入到數據庫中的線程/進程,然後運行此函數?如果沒有,似乎會導致微妙的腐敗/錯誤,很難追查! – Kitsune 2012-02-20 17:47:45

+0

@Kitsune''LAST_INSERT_ID'在事務中是安全的,'mysql_insert_id'總是安全的(對於在線程之間不共享單個數據庫連接的PHP代碼)。請參閱http://stackoverflow.com/questions/1808337/is-mysql-insert-id-thread-safe。 – Borealid 2012-02-20 17:49:29

+0

@Kitsune請不要把mysql開發者當成傻瓜。 – 2012-02-20 17:50:43

1

$coin_ID = mysql_insert_id();

2

這要看數據庫驅動程序使用的是用PHP。如果你正在使用PHP的PDO,那麼你可以使用lastInsertId()方法

$coin_id = mysql_insert_id() 

:如果您使用的是

$coin_id = $DB->lastInsertId() 

如果您使用的是標準的MySQL功能,您可以使用mysql_insert_id功能支持RETURNS sql關鍵字的數據庫(例如postgres),那麼你可以在一個查詢中完成。但是MySQL不支持它。

INSERT INTO coins VALUES (NULL, '$user_ID', '$title', NOW()) RETURNING coin_id; 

如果您編輯您的帖子以包含您正在使用的數據庫交互方法,我們可以提供更具體的答案。