使用PHP,MySQLi和Prepared Statement,我如何返回插入行的id?

时间:2011-07-02 11:27:38

标签: php mysql mysqli prepared-statement

我想检索数据库中插入行的id,但我不知道该怎么做。

我尝试使用SQL子句RETURNING id返回,但不起作用。

如何在插入行后返回id?

3 个答案:

答案 0 :(得分:74)

execute()上调用PreparedStatement方法后,插入行的ID将位于insert_id属性中。只读它。

$pstm->execute();
$pstm->insert_id;

答案 1 :(得分:6)

$newid = mysqli_insert_id($mysqli_db);

$mysqli_db是您的mysqli数据库连接。据我所知,插入行(预备语句或直接INSERT INTO)的方式无关紧要。 mysqli_insert_id()应使用此db连接返回最后插入行的id。

另一种方法是制作另一个查询,例如SELECT LAST_INSERT_ID();

答案 2 :(得分:1)

这是不正确的,您需要使用:

$stmt = $db->prepare("SQL Query");
$stmt->execute();
$id = $db->lastInsertId();