2012-09-19 91 views
1

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

例如,如果最后一个组的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(); 
+0

确定我得到了你想要的东西......你能告诉我们你有什么迄今所做... – Surace

+0

@Surace是的,我现在发布的代码。 – Richard

+0

最好不要重复相同的问题。谢谢。 – Kev

回答

3

这将是更易于使用的AUTO_INCREMENT列,当你不会有这个担心自己的。

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

+0

你能看到我编辑过的文章吗,对吗? – Richard

+0

@Richard:我只是写'$ gid-> fetchColumn();'但是是的,看起来不错。 – Jon

+0

好的,我在其中插入了另一段代码。这一切都看起来好吗?出于某种原因,我的页面无法正常加载。早些时候,当有一些代码问题时,它就完成了这个任务。控制台也没有显示任何东西。有任何想法吗? – Richard

1

$ gid = $ link-> prepare(“SELECT MAX(Group_ID)FROM Conference”); (“INSERT INTO会议(Group_ID)SELECT MAX(Group_ID)FROM Conference”);}};}};

$ stmt-> execute();

1

尝试像

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