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? Может кто сталкивался?