0

我必须获得最大id的字符串或 int 变量。

我就是这样做的:

$sql = "SELECT id FROM table ORDER BY id DESC LIMIT 1";
    $list = mysql_query($sql) or die (mysql_error());
    $lst = mysql_fetch_array($list);
    $resId= $lst[0];

ResId是那个变量。

这行得通吗?

有更好的方法吗?

没有AUTO_INCREACMENT

4

2 回答 2

1

如果您不自动递增或以任何其他方式组织您的 id:s,则无法知道哪个是最后一个。(除非您在执行插入查询时获得最后插入的 id。)

您的查询返回最大的 id,但如果您没有构建代码/表以使最大的 id 是最后一个 - 那么它显然不会返回最后一个 id(哦,它可以)。

至于你的问题,它是否会起作用。你为什么不简单地尝试一下?你更有可能从尝试自己中学习,而不是一直向人们寻求答案。

于 2013-09-20T21:05:04.427 回答
0

如果lastid 是最大的 id(正如我从您的查询中看到的那样),那么您也可以使用:

$q = 'select max(id) as max_id from `b_iblock_element`';
$q_res = mysql_query($q);
$row = mysql_fetch_assoc($q_res);
$max_id = intval($row['max_id']);

并且不要忘记mysql_*函数已被弃用,并且很快将被删除。

于 2013-09-20T21:07:06.537 回答