Php 如何在MySQL中将表中的最后一个id插入到另一个表中?

Php 如何在MySQL中将表中的最后一个id插入到另一个表中?,php,mysql,Php,Mysql,我想获取数据库中最近项目的id,将其递增一,然后将新id插入到另一个表中 我试过: $select = mysql_query("SELECT id FROM tableName ORDER BY id DESC"); while ($return = mysql_fetch_assoc($select)) { $id = $return['id']; $newId = $id++; } mysql_query("INSERT INTO anotherTable (someC

我想获取数据库中最近项目的id,将其递增一,然后将新id插入到另一个表中

我试过:

$select = mysql_query("SELECT id FROM tableName ORDER BY id DESC");

while ($return = mysql_fetch_assoc($select)) {

   $id = $return['id'];
   $newId = $id++;

}

mysql_query("INSERT INTO anotherTable (someColumn) VALUES ('$newId')");

但它不起作用。如何做到这一点?

你不应该这样做。而是将一条新记录插入到
tableName
中,然后使用捕获新ID,然后将其插入到另一个
表中。通过这种方式,您可以避免在相反的情况下可能发生的比赛情况。

您不应该这样做。而是将一条新记录插入到
tableName
中,然后使用捕获新ID,然后将其插入到另一个
表中。通过这种方式,您可以避免使用另一种方式时可能发生的比赛条件。

为什么要使用while语句?如果你只想要最新的身份证,就把它拿出来

$select = mysql_query("SELECT id FROM tableName ORDER BY id DESC");

$return = mysql_fetch_assoc($select);

$id = $return['id'];
$newId = $id + 1;

mysql_query("INSERT INTO anotherTable (someColumn) VALUES ('$newId')");

为什么使用while语句?如果你只想要最新的身份证,就把它拿出来

$select = mysql_query("SELECT id FROM tableName ORDER BY id DESC");

$return = mysql_fetch_assoc($select);

$id = $return['id'];
$newId = $id + 1;

mysql_query("INSERT INTO anotherTable (someColumn) VALUES ('$newId')");
您可以尝试以下方法:

$select = mysql_query("SELECT id FROM tableName ORDER BY id DESC");

if(! $select)
    die("Query Failed");

$return = mysql_fetch_assoc($select);
$id = $return['id'];
$newId = ++ $id; // post increment does not work...use preincrement.
mysql_query("INSERT INTO anotherTable (someColumn) VALUES ('$newId')");
您可以尝试以下方法:

$select = mysql_query("SELECT id FROM tableName ORDER BY id DESC");

if(! $select)
    die("Query Failed");

$return = mysql_fetch_assoc($select);
$id = $return['id'];
$newId = ++ $id; // post increment does not work...use preincrement.
mysql_query("INSERT INTO anotherTable (someColumn) VALUES ('$newId')");

使用mysql\u insert\u id()获取最后一个插入的id

使用mysql\u insert\u id()获取最后一个插入的id

为什么需要它?为什么不使用自动增量功能?是否有特定的错误消息?在这里,$newId也将等于$id
$id++
只会在赋值发生后增加$id的值。@Col.Shrapnel我确实使用自动增量,这完全是为了另一个目的。它不应该是为了另一个目的,因为它会破坏数据库的完整性为什么需要它?为什么不使用自动增量功能?是否有特定的错误消息?在这里,$newId也将等于$id
$id++
只会在赋值发生后增加$id的值。@Col.Shrapnel我确实使用自动增量,这完全是为了另一个目的。它不应该是为了另一个目的,因为它会破坏数据库的完整性great,谢谢我需要删除while。出于某种奇怪的原因,$newId=$id++不起作用,但$newId=$id+1起作用。太好了,谢谢你,我需要删除它。出于某种奇怪的原因,$newId=$id++不起作用,但$newId=$id+1起作用。