我在使用PHP和phpMyAdmin来创建一个小的个人资料的网站。 我给成员的ID号码,基于这是目前在数据库中的最大数,1

我做了25次试验之前,我得到了PHP脚本,我希望它是。

我然后使用phpMyAdmin删除那些25个条目。

但是现在,当我的PHP代码做到这一点:

function getLatestID() {
    $query = "SELECT max(member_id) FROM members";
    $result = @mysql_query($query) or showError("unable to query database for user information");
    if (!($record = mysql_fetch_array($result))) return null;
    return $record[0];
}

我得到了错误的号码。

测试场景:数据库表持有3项,与ID的1,2和3

我启动调试会话,并把一个断点返回$record[0]。 余检查其内容和代替3-,这是最大的数,它是28。

如在25 + 3 = 28,即我媒体链接删除的25个条目...

有谁知道是什么导致了这一点,我怎么能解决这个问题?

有帮助吗?

解决方案

这可能是因为你已经AUTO_INCREMENT设置和查询返回最高的ID。当你删除其他记录,你可能没有重置自动增量次数。

其他提示

如果您正在使用auto_increment在MySQL中,然后删除记录将不会减少下一个值。

可以清空一个表与TRUNCATE TABLE mytable - 这将重置值

您还可以更改自动递增认为是下一个值来分配值:

ALTER TABLE members AUTO_INCREMENT = 3;

请注意,如果你把在小于在自动增量列的当前最大值的值,它会改变的值到MAX + 1。要了解当前的下一个值设置为,这样做:

SHOW CREATE TABLE members;

目前的表定义的末尾,就会显示“AUTO_INCREMENT = 26”或任何它的电流值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top