在查询中使用下一个AUTO_INCREMENT id


Using next AUTO_INCREMENT id within query?

我知道有人问过类似的问题,但似乎都不适合我的尝试。

我正在用mysqli/php开发一个系统,它可以获取音频文件,上传它们,重命名它们,并存储名称。唯一的问题是…我需要文件名为"uploadedfile_[$id_here].mp3"

我已经让整个上传系统正常工作,但我已经走到了最后一步。。。让id工作。

此表中的id列为Auto_Increment。我只需要找出如何"预测"即将出现的新行的Auto_Increment ID,并通过变量将其标记在音频文件名的末尾。

我尝试过的一种方法是:

$result = mysqli_query($conn, "SHOW TABLE STATUS LIKE 'test_table'");
$row = mysqli_fetch_array($result);
$nextId = $row['Auto_increment'];
print $nextId;

但这并没有返回任何结果。我的连接文件应该被正确配置,因为我已经将它用于其他查询,而且它运行良好。

提前感谢!

这确实取决于此代码的运行频率,当然吗?

自动递增每次递增1。插入了一条记录,我自己刚刚开始使用PHP,但你肯定可以在你的。。。

 $nextId = $row['Auto_increment'];

这会给你下一个身份证。除非,正如Maerlyn所说,你同时有两个用户,在这种情况下,我认为你可以在插入记录的同时插入临时表,如果成功,插入主表并从临时表中删除。当插入到临时表中时,在尝试任何操作之前,您首先必须运行一个检查,看看该记录是否已经存在于临时表中。

只有我的两美分。

只需执行INSERT查询,然后获得$mysqli->insert_id

http://php.net/manual/ru/mysqli.insert-id.php