有两种方法可以调用此方法:
- 面向对象-
$mysqli->insert_id
;
- 程序(如您所指定) -
mysqli_insert_id(mysqli $link)
在这两种情况下,最后一个插入 id 都与您与数据库建立的连接有关。出于解释的目的,尽管我相信面向对象的方法提供了更大的清晰度。考虑以下代码:
$mysqli = new mysqli('host','username','password','database');
// Insert into table with an AUTO INCREMENT field defined`
if ($result = $mysqli->query("INSERT INTO table (somefield) VALUES ('somevalue');")) {
echo 'The ID is: '.$mysqli->insert_id;
}
$insert_id
每当调用查询函数时,都会更新实例变量。因此,所持有的值仅在您的代码范围内,与其他进程与数据库的其他交互无关。
不过,有一些有趣的警告需要考虑。例如,如果您决定进行批量插入,例如
$mysqli->query("INSERT INTO table (somefield) VALUES ('somevalue'), ('anothervalue');")
它将返回插入的第一行的 ID,而不是最后一行。
为了进一步阅读PHP Doc提供了更多的说明。