select last_insert_id() или PDO::lastInsertId?

В свои кодах использую PDO, но чтобы получить id вставленной записи, всегда выполнял запрос "select last_insert_id()" после insert (PDO::prepare/execute или PDO::query). Естественно в таблице на поле id использую autoincrement. Проблем и нареканий не наблюдал.

пример таблицы:

CREATE TABLE `data` (
 `id` int(20) UNSIGNED NOT NULL,
 `value` varchar(15) COLLATE cp1251_bin NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 COLLATE=cp1251_bin;

пример php-кода:

$query=$db->query("insert into `data` (`value`) values ('test')");
$id=$db->query('select last_insert_id()')->fetchColumn();

Не знаю почему, но что-то пропустил я функцию PDO::lastInsertId и теперь хочу использовать ее вместо "громоздкой" комбинации запроса на 2 строки. :) Провел пару тестов на разные свои случаи, вроде бы "подводных камней" не нашел. Но как-то боязно вводить в уже работающие проекты, где крутятся большие данные. Вдруг функция PDO::lastInsertId может повести себя иначе.

Есть ли какие-то различия или разница между использованием select last_insert_id() или PDO::lastInsertId? Может кто сталкивался?


Ответы (0 шт):