PHP MySQL INSERT值返回插入的主键

时间:2013-08-29 02:58:24

标签: php mysql

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

$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?我想过使用时间戳,但总有两个人可能同时插入,并且可能会发生某种交叉映射。任何解决方案或建议?

3 个答案:

答案 0 :(得分:5)

mysqli_insert_id - 返回上次查询中使用的自动生成的ID

答案 1 :(得分:2)

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

看起来您只需要访问$stmtPhotoGenre->insert_id;,或者如果您没有使用OOP路线,则运行mysqli_insert_id($link);

答案 2 :(得分:0)

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

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