我正在尝试使用以下语句将照片信息插入到照片表中:
$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?我想过使用时间戳,但总有两个人可能同时插入,并且可能会发生某种交叉映射。任何解决方案或建议?
答案 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