【发布时间】:2011-09-27 06:08:00
【问题描述】:
我想检索数据库中插入行的 id,但我不知道该怎么做。
我尝试使用 SQL 子句 RETURNING id 返回,但不起作用。
插入一行后如何返回id?
【问题讨论】:
标签: php mysql mysqli prepared-statement
我想检索数据库中插入行的 id,但我不知道该怎么做。
我尝试使用 SQL 子句 RETURNING id 返回,但不起作用。
插入一行后如何返回id?
【问题讨论】:
标签: php mysql mysqli prepared-statement
在Prepared Statement上调用execute()方法后,插入行的id会在insert_id属性中。
$pstm->execute();
$pstm->insert_id;
【讨论】:
mysqli_connection->insert_id 而不是 mysqli_stmt->insert_id。想你可能知道这是否正确。
AUTO_INCREMENT 后对我有用。
$newid = mysqli_insert_id($mysqli_db);
$mysqli_db 是你的 mysqli 数据库连接。据我所知,插入行的方式无关紧要(准备好的语句或直接INSERT INTO)。 mysqli_insert_id() 应该使用此数据库连接返回最后插入的行的 id。
另一种方法是进行另一个查询,例如SELECT LAST_INSERT_ID();。
【讨论】:
PreparedStatement?我得到了 id:$pstm->execute();,之后,insert_id 属性的 id 为:$mysqli->insert_id;
你需要使用:
$stmt = $db->prepare("SQL Query");
$stmt->execute();
$id = $db->lastInsertId();
【讨论】:
PDO 而不是MySQLi。