junior17
Новичок
Здравствуйте,
В документации pdo написано:
Пример:
У меня в коде много где используется $pdo->lastInsertId(), поэтому немного настораживает, возможно ли то, что эта функция вернет не то, что требуется? Просьба разъяснить этот момент. Спасибо.
В документации pdo написано:
Но у меня в postgre 9.6 $pdo->lastInsertId() без указания имени последовательности возвращает последнюю запись SEQUENCE.Возвращает ID последней вставленной строки или последнее значение от объекта последовательности, в зависимости от базового драйвера. Например, PDO_PGSQL требует задать имя объекта последовательности для параметра name.
Пример:
Код:
CREATE SEQUENCE users_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
CREATE TABLE users (
id bigint DEFAULT nextval('users_id_seq'::regclass) NOT NULL,
name character varying NOT NULL,
PRIMARY KEY(id)
);
$pdo = $dbh->prepare("INSERT INTO users (name) VALUES(?)");
$pdo->bindValue(1, $name);
$pdo->execute();
$pdo->lastInsertId(); /* Возвращает последнего пользователя */
Последнее редактирование: