我在這同一個腳本頁面中使用這樣的查詢如何在同一個SQL查詢中插入和選擇數據?
INSERT INTO coins VALUES (NULL, '$user_ID', '$title', NOW())
現在以後,我需要使用值coin_ID,我只是插在上面的查詢。這是自動增量值,所以我添加了NULL。
如何在同一頁面中使用此coin_ID後,我運行了一些PHP檢查?
感謝
我在這同一個腳本頁面中使用這樣的查詢如何在同一個SQL查詢中插入和選擇數據?
INSERT INTO coins VALUES (NULL, '$user_ID', '$title', NOW())
現在以後,我需要使用值coin_ID,我只是插在上面的查詢。這是自動增量值,所以我添加了NULL。
如何在同一頁面中使用此coin_ID後,我運行了一些PHP檢查?
感謝
在PHP mysql_insert_id或LAST_INSERT_ID在MySQL
嘗試通過PHP mysql_insert_id
功能使用LAST_INSERT_ID()。
這個函數實際上是安全的,因爲在當前上下文插入之間存在另一個插入到數據庫中的線程/進程,然後運行此函數?如果沒有,似乎會導致微妙的腐敗/錯誤,很難追查! – Kitsune 2012-02-20 17:47:45
@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
@Kitsune請不要把mysql開發者當成傻瓜。 – 2012-02-20 17:50:43
使用mysql_insert_id
來檢索上次插入的ID。
$coin_ID = mysql_insert_id();
這要看數據庫驅動程序使用的是用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;
如果您編輯您的帖子以包含您正在使用的數據庫交互方法,我們可以提供更具體的答案。
我忘了提及,我打算使用該coin_ID來選擇另一個表中的鏈接列 – 2012-02-20 17:44:24
當我使用該功能時出現此錯誤http://i.imgur.com/f34EJ.png是否可以問題與權限? – 2012-02-20 17:55:58