【发布时间】:2015-07-12 08:37:24
【问题描述】:
我最近遇到了一个问题,我需要能够获取我在页面上插入的查询的最后一个 ID。这个过程很简单,但我想对这个过程是如何完成的有一些保证。以下是我的代码:
$query30 = $db->query("INSERT `mybb_quickexample` SET `player1` = '".$row19[username]."', `player2` = '".$row18[username]."', `games` = '".$numberofgames."'")or die( mysqli_error());
如您所见,我刚刚在 mybb_quickexample 中插入了一些内容,然后生成了一个 ID。现在在它正下方的代码中,我尝试找到ID。
$mmid = $db->insert_id();
foreach($_POST['optiontitle'] as $val){
$val = $db->escape_string($val); //
echo $val;
$query30 = $db->query("INSERT `mybb_quickexample2` SET `gid` = '".$id."', `mid` = '".$mmid."', `optiontitle` = 'OPTION TITLE', `option1` = '$val'")or die( mysqli_error());
}
如您所见,它获取最近的 ID 并将其放入新表中。允许这两张表在我需要时相互对应。
但是,insert_last_id 是抓取页面上插入数据库的最后一行还是插入数据库的最后一行?现在我不完全确定这背后的机制,但我问这个是因为,如果一个人与另一个人同时加载这个页面怎么办?是否会有不匹配的 ID 抓取或代码仍然有效?
【问题讨论】:
-
@LightnessRacesinOrbit 这不是 stackoverflow 帖子。 可能重复 ?
标签: php mysql one-to-many auto-increment identifier