所以,我在想,如果你推出這個查詢:如何在插入查詢中獲得auto_increment值?
INSERT INTO users (name, gender, location) VALUES ('Ricky-Bobby', 'm', 'Daytona Beach, FL');
並假設users
有主鍵的另一個自動遞增列,你將如何能夠獲得該主鍵的值而不啓動另一個查詢?
所以,我在想,如果你推出這個查詢:如何在插入查詢中獲得auto_increment值?
INSERT INTO users (name, gender, location) VALUES ('Ricky-Bobby', 'm', 'Daytona Beach, FL');
並假設users
有主鍵的另一個自動遞增列,你將如何能夠獲得該主鍵的值而不啓動另一個查詢?
Codeigniter通過函數$this->db->insert_id()
簡化了MySQL查詢SELECT LAST_INSERT_ID()
。
雖然這是查詢,這是一個非常輕的不會是性能問題。有一點需要注意的是:
$this->db->insert_id()
INSERT
將具有id
,只需$this->db->insert_id() + 1
由於併發性問題,我不會推薦第二個選項。海事組織你應該只能在插入後恢復。 (如果操作不是非常接近,即使第一個選項可能會失敗) – Birla 2014-07-07 10:35:45
我同意。在我創建之前唯一一次假設ID是從頭開始構建數據庫並只運行一次查詢。我還沒有一個好的理由來做任何事情,而不是在插入後取得ID。 – 2014-07-07 10:42:29
笨使得這可用$this->db->last_insert_id()
http://ellislab.com/codeigniter/user-guide/database/helpers.html
您也可以通過執行以下語句直接從MySQL獲取它:'SELECT LAST_INSERT_ID()FROM users'。 – 2013-04-22 18:33:30
'$ this-> db-> insert_id()' – 2013-04-22 21:18:53
你可以使用這個,如果你使用的是PDO
您可以與您的查詢相結合LAST_INSERT_ID()
:
INSERT INTO users (name, gender, location) VALUES ('Ricky-Bobby', 'm', 'Daytona Beach, FL');
SELECT LAST_INSERT_ID();
你的意思是這樣嗎? http://www.php.net/manual/en/mysqli.insert-id.php – str 2013-04-22 18:30:26