MYSQL - 查找刚添加的记录的ID

时间:2013-03-14 19:00:46

标签: php mysql

好的,所以这是我的情景 - 你可能不同意我试图做的事情,但我有我的理由。 用户可以将各种信息上传到数据库,我也希望他们能够同时上传图片。现在出于各种原因,我想用文件名存储图像我正在添加的记录的ID号(我有一个ID列作为主要的自动递增)。显然我也必须将文件扩展名存储在数据库中。 现在有一种方法可以添加记录,然后知道设置了什么ID,以便我可以保存图像?我不想查询并选择最高ID,因为如果两个人同时提交表单可能会出错。 有什么想法吗?

2 个答案:

答案 0 :(得分:3)

LAST_INSERT_ID()会为您提供自动生成的ID

  

...返回表示第一个的BIGINT(64位)值   为AUTO_INCREMENT设置的自动生成的值   最近执行的INSERT语句列,以影响此类   一栏。例如,在插入生成一个的行之后   AUTO_INCREMENT值,您可以获得如下值:

mysql> SELECT LAST_INSERT_ID();
        -> 195

答案 1 :(得分:1)

在PHP中运行插入后,您可以从AUTO_INCREMENT获取$mysqli->insert_id ID(其中$ mysqli是MySQLi连接对象),$pdo->lastInsertId(其中$ pdo)是PDO连接对象),或mysql_insert_id()(如果您仍在使用MySQL,则不应该这样做),而无需运行其他查询。