Ответ 1
После вызова метода execute()
в PreparedStatement
, идентификатор строки вставки будет находиться в атрибуте insert_id
. Только прочитайте его.
$pstm->execute();
$pstm->insert_id;
Я хочу получить идентификатор вставленной строки в базе данных, но я не знаю, как это сделать.
Я попытался вернуться с использованием предложения SQL RETURNING id
, но не работает.
Как я могу вернуть идентификатор после вставки строки?
После вызова метода execute()
в PreparedStatement
, идентификатор строки вставки будет находиться в атрибуте insert_id
. Только прочитайте его.
$pstm->execute();
$pstm->insert_id;
$newid = mysqli_insert_id($mysqli_db);
$mysqli_db
- это соединение с базой данных mysqli. Насколько я знаю, не имеет значения, каким образом вставил строку (подготовленный оператор или прямой INSERT INTO
). mysqli_insert_id()
должен возвращать идентификатор последней вставленной строки, используя это соединение db.
Альтернативой является другой запрос, например SELECT LAST_INSERT_ID();
.
Это неверно, вам нужно использовать:
$stmt = $db->prepare("SQL Query");
$stmt->execute();
$id = $db->lastInsertId();