Используя PHP, MySQLi и Prepared Statement, как мне вернуть идентификатор вставленной строки? - PullRequest
35 голосов
/ 02 июля 2011

Я хочу получить идентификатор вставленной строки в базе данных, но я не знаю, как это сделать.

Я пытался вернуться, используя предложение SQL RETURNING id, но не работает.

Как я могу вернуть идентификатор после вставки строки?

Ответы [ 3 ]

76 голосов
/ 07 июля 2011

После вызова метода execute() для PreparedStatement идентификатор строки вставки будет в атрибуте insert_id.Только прочитайте это.

$pstm->execute();
$pstm->insert_id;
6 голосов
/ 02 июля 2011
$newid = mysqli_insert_id($mysqli_db);

$mysqli_db - ваше подключение к базе данных mysqli. Насколько я знаю, не имеет значения, по какому пути вы вставили строку (подготовленное утверждение или прямое INSERT INTO). mysqli_insert_id() должен вернуть идентификатор последней вставленной строки, используя это соединение БД.

Альтернативой является создание еще одного запроса, например SELECT LAST_INSERT_ID();.

2 голосов
/ 15 января 2019

Это неверно, вам нужно использовать:

$stmt = $db->prepare("SQL Query");
$stmt->execute();
$id = $db->lastInsertId();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...