0

我有这个完全相同的问题,但是那个答案很旧,而且我读过其他地方,mysql_insert_id() 的使用已被贬低,应该在新代码中避免使用。

数据库是 InnoDB,该表的主键设置为 auto_increment。

谁能看到我在这里做错了什么?我应该注意我是一个初学者并且自学,所以我很抱歉这是显而易见的。

$query  = "INSERT INTO VENUES (province,city,venue)" . "VALUES " . "('$province','$city','$venue')";
$result = $db->query($query);
if ($result) {
    echo "$result row(s) sucessfully inserted.<br/>";
} else {
    echo "$db->error<br/>";
}

$result = $db->query("select last_insert_id()");
echo $result->num_rows //returns 1
echo $result; //nothing beyond this line happens

更新:我正在使用 mysqli。

4

1 回答 1

6

使用时获取最后插入的 id 的正确方法mysql_*是调用mysql_insert_id().

您正在阅读的内容部分正确 -mysql_insert_id正在被弃用,但不仅仅是那个功能。所有mysql_*功能都被弃用。相反,您应该使用 PDO 或mysqli_*.

在您的代码片段中,不清楚您使用的是哪个数据库访问库。由于您的调用似乎绑定到一个对象,很可能您正在使用 PDO 或 mysqli。

对于 PDO,您可以使用PDO::lastInsertId.
对于mysqli,使用mysqli->insert_id

于 2013-09-04T06:54:00.090 回答