PHP中的MySQL查询给出了明显错误的结果

Vor*_*ler 3 php mysql phpmyadmin

我正在使用PHP和PHPMyAdmin来创建一个小型的站点.我给会员一个ID号码,根据该号码,数据库中当前最大的号码是+1

在我得到PHP脚本之前,我做了25次测试.

然后我使用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];
}
Run Code Online (Sandbox Code Playgroud)

我得错了号码.

测试场景:数据库表包含3个条目,ID为1,2和3.

我启动一个调试会话并在返回时放置一个断点$record[0].我检查它的内容,而不是3,这是最大的数字,它是28.

在25 + 3 = 28中,我已经删除了25个条目...

有谁知道是什么导致了这个以及我如何解决它?

Vir*_*dia 6

这可能是因为你设置了auto_increment并且查询返回了最高的id.删除其他记录时,可能没有重置自动增量计数.


Gre*_*reg 5

如果您auto_increment在MySQL中使用,则删除记录不会降低下一个值.

你可以用TRUNCATE TABLE mytable- 清空一个表- 这将重置该值.