1

たとえば、groupID という列があるとします。これは、グループに割り当てられた番号です。基本的に、私がやりたいことは、その列から最大値を取得し、1 を追加して、その入力を php の変数に格納することだけです。

たとえば、最後のグループの 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 を追加すると目標が達成されます。これは競合状態の影響を受けやすい (2 つのクライアントがこれを実行し、同じ値を取得した場合はどうなる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->execute();

于 2012-09-19T10:48:23.197 に答える
1

のようにしてみてください

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