我有这个完全相同的问题,但答案是陈旧的,我已经读过其他地方使用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.
"; } else { echo "$db->error
"; } $result = $db->query("select last_insert_id()"); echo $result->num_rows //returns 1 echo $result; //nothing beyond this line happens
更新:我正在使用mysqli.
获取最后插入的id的正确方法mysql_*
是在使用时调用mysql_insert_id()
.
你正在阅读的内容是部分正确的 - mysql_insert_id
正在被弃用,但它不仅仅是那个功能.所有mysql_*
功能都已被弃用.相反,你应该使用PDO或mysqli_*
.
在您的代码段中,不清楚您正在使用哪个数据库访问库.由于您的调用似乎绑定到某个对象,因此您可能正在使用PDO或mysqli.
对于PDO,您可以使用PDO::lastInsertId
.
对于mysqli
,使用mysqli->insert_id
.