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