我正在使用 MySQL 数据库开发 PHP 网络应用。
我想知道找出行在插入后收到的主键(或任何其他自动增量字段)的最佳方法是什么。
作为结果返回整行的东西也很不错,因为我还想知道分配给我没有明确设置的字段的默认值。
感谢所有帮助。
-- 编辑
因此,我正在使用一个内部框架来抽象出实际的数据库功能,所以我不能使用特定于连接的“mysql_last_insert_id”,并且“select last_insert_id”查询 AFAIK 会受到影响其他数据库连接,特别是考虑到我正在使用的框架为每个查询打开新连接。
我猜这是一个框架问题,你帮不了我。不过,如果 INSERT INTO 具有“返回插入的行”模式,那就太好了。
最佳答案
MySQL 提供了一种方便的方式来回答这个确切的问题:
mysql> SELECT LAST_INSERT_ID()
mysql_*
函数带有一个包装器:检查 mysql_insert_id
PDO 的 mysql 驱动程序给出相同的:
$pdo->exec('insert into ...');
$lastId = $pdo->lastInsertId();
关于php - INSERT INTO 和主键、自增字段和默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8746416/