我想获取数据库中最新项的id,将其递增1并将该新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')");
但它没有用。怎么办呢?
答案 0 :(得分:4)
你不应该这样做。而是将新记录插入tableName
,然后使用mysql_insert_id()
捕获新ID,然后将其插入anotherTable
。通过这种方式,您可以避免在相反的情况下可能发生的竞争条件。
答案 1 :(得分:1)
为什么使用while语句?如果您只想要最新的ID,请稍等一下..
$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')");
答案 2 :(得分:1)
使用mysql_insert_id()获取最后插入的ID
答案 3 :(得分:0)
你可以试试这个:
$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')");