Получение последнего вставленного идентификатора автоинкрементной записи с использованием fat-free-framework

Мне нужно получить идентификатор (AUTO-INCREMENTED) последней вставленной записи в таблице. Я использую обезжиренную структуру.

Я пытался получить последний идентификатор с помощью

$id = mysql_insert_id();

но это дало мне эту ошибку

Доступ запрещен для пользователя 'root'@'localhost' (используется пароль: НЕТ)

Я обращаюсь к базе данных с помощью fat-free-framework и не использую традиционные функции php. Кто-нибудь может подсказать мне, как этого добиться?

4 ответа

Решение

Попробуйте этот код после вставленной записи

$id = $db->lastInsertId();

Помимо ответа kumar_v, F3 будет автоматически заполняться $db->_id после успешной вставки.

Обратите внимание, что если вы использовали SQL Mapper для создания строки в вашей таблице, вы можете просто сделать

$object->id;

Пример (с использованием таблицы, содержащей кавычки):

$quote = new DB\SQL\Mapper($db, 'quotes');
if($_POST){
    //overwrite with values just submitted
    $quote->copyFrom('POST');
    $quote->save();
    die("new quote added with id:".$quote->id);
}
$quote = new DB\SQL\Mapper($db, 'quotes');
$quote->get('_id');

"_id" - это поле идентификатора автоматического увеличения идентификатора вашей таблицы, замените "_id" на свое, которое вы можете прочитать в документах: https://fatfreeframework.com/3.6/sql-mapper

Другие вопросы по тегам