所以,我在想,如果你推出这个查询:如何在插入查询中获得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