2

所以,我想知道您是否要启动此查询:

INSERT INTO users (name, gender, location) VALUES ('Ricky-Bobby', 'm', 'Daytona Beach, FL');

并且假设users主键有另一个自动递增的列,您如何能够在不启动另一个查询的情况下获取该主键的值?

4

4 回答 4

3

codeigniter makes this available with $this->db->last_insert_id()

http://ellislab.com/codeigniter/user-guide/database/helpers.html

于 2013-04-22T18:30:31.617 回答
3

CodeigniterSELECT LAST_INSERT_ID()通过函数简化了 MySQL 查询$this->db->insert_id()

虽然这一个查询,但它是一个非常轻量级的查询,不会成为性能问题。需要注意的一件事是:

  • 如果您想要插入的行上的 ID;$this->db->insert_id()
  • 如果您想要 auto_increment 值,那就是 anINSERT将具有的下一个值id,只需$this->db->insert_id() + 1
于 2013-04-23T07:36:49.480 回答
1

您可以结合LAST_INSERT_ID()您的查询:

INSERT INTO users (name, gender, location) VALUES ('Ricky-Bobby', 'm', 'Daytona Beach, FL');
SELECT LAST_INSERT_ID();
于 2013-04-22T18:36:23.390 回答
0

如果您使用 PDO,您可以使用它

http://php.net/manual/en/pdo.lastinsertid.php

于 2013-04-22T18:34:17.707 回答