1

我正在尝试使用以下语句将照片信息插入照片表:

$stmt = $mysqli->prepare("INSERT INTO Photographs(Genre, Name, Photographer, Camera, location) VALUES(?,?,?,?,?)");
$stmt->bind_param('isiis', $genre, $name, $photographer, $camera, $location);
$stmt->execute();

成功插入后,我想获取照片表的自动递增主键值并插入连接表(对于我的多对多关系),如下所示:

$stmtPhotoGenre = $mysqli->prepare("INSERT INTO PhotoGenre(idPhotograph, Genre) VALUES(?,?)");
$stmtPhotoGenre->bind_param('ii', $idPhotograph);

有没有办法使用 MySQL 或 PHP 获取最后插入的 id?我想过使用时间戳,但总是有可能两个人可以同时插入,并且可能会发生某种交叉映射。有什么解决方案或建议吗?

4

3 回答 3

5

mysqli_insert_id — 返回上次查询中使用的自动生成的 id

于 2013-08-29T03:00:43.570 回答
2

您可以使用名为mysqli_insert_id的此类变量将其取回。

看起来您所要做的就是访问$stmtPhotoGenre->insert_id;,或者mysqli_insert_id($link);如果您不走 OOP 路线,则运行。

于 2013-08-29T03:01:10.613 回答
0

我认为 MySQLLAST_INSERT_ID功能将满足您的需求。

http://dev.mysql.com/doc/refman/5.5/en/information-functions.html#function_last-insert-id

于 2013-08-29T03:01:37.877 回答