1

假设我有一个名为 groupID 的列,它是给一组人的数字。基本上我想做的就是从该列中获取最大值,加 1 并将该输入存储到 php.ini 中的一个变量中。

例如,如果最后一个组的 id 是 5,那么下一个组的 id 应该是 6。有什么想法吗?

$gid = $link->prepare("SELECT MAX(Group_ID) FROM Conference");
$gid->execute();
$groupid = $gid->fetchColumn();

$stmt = $link -> prepare("INSERT INTO Conference (`Group_ID`) VALUES (:groupid)");
$stmt->bindParam(':groupid', $groupid);
$stmt->execute();
4

3 回答 3

3

AUTO_INCREMENT当您根本不必担心这一点时,使用列会简单得多。

要手动解决它,SELECT MAX(id) FROM table将为您提供当前使用的最大 id,并为其添加 +1 即可实现目标。这很容易受到竞争条件的影响(如果两个客户端这样做并从中获得相同的值MAX()怎么办?),但恢复模式非常简单:重复直到成功。

于 2012-09-19T10:14:57.023 回答
1

$gid = $link->prepare("SELECT MAX(Group_ID) FROM Conference");

$stmt = $link -> prepare("INSERT INTO Conference( Group_ID) SELECT MAX(Group_ID) FROM Conference");

$stmt->执行();

于 2012-09-19T10:48:23.197 回答
1

试试喜欢

$gid = $link->prepare("SELECT MAX(Group_ID) as maximum FROM Conference");
于 2012-09-19T10:49:09.787 回答