在查询中使用下一个AUTO_INCREMENT ID?

时间:2014-10-15 13:06:44

标签: php mysqli auto-increment

我知道有类似的问题已被提出,但它们似乎都不适用于我正在尝试的事情。

我正在使用mysqli / php开发一个系统,该系统接收音频文件,上传它们,重命名它们并存储名称。唯一的问题是......我需要文件的名称是"上传文件_ [$ 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;

但这并没有带来任何结果。我的连接文件应该正确配置,因为我已经将它用于其他查询,并且工作正常。

提前致谢!

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

这实际上取决于此代码的运行频率吗?

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

 $nextId = $row['Auto_increment'];

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

只是我的两分钱。