Это MariaDB 10.3.11.
При использовании функции LastInsertId PDO, если вы запустите еще один запрос после запроса на вставку, Значение результата lastInsertId всегда будет равно 0.
пример таблицы
Код: Выделить всё
create table test
(
id int unsigned auto_increment comment 'PK' primary key,
title varchar(128) charset utf8mb4 not null comment 'title'
)
comment 'test';
create table test2
(
id int unsigned auto_increment comment 'PK' primary key,
title varchar(128) charset utf8mb4 not null comment 'title'
)
comment 'test2';
Код: Выделить всё
public function pdoTest()
{
$title = "test";
$id = 1;
$db = new PDO('mysql:host=;port=;dbname=;charset=utf8', '', '');
$db->beginTransaction();
$query = "INSERT INTO test (title) VALUES (:title)";
$stmt = $db->prepare($query);
$stmt->bindParam(':title', $title);
$stmt->execute();
$updateQuery = "UPDATE test2 SET title = :title WHERE id = :id";
$stmt = $db->prepare($updateQuery);
$stmt->bindParam(':id', $id);
$stmt->bindParam(':title', $title);
$stmt->execute();
echo $db->lastInsertId();
$db->commit();
}
Мне интересно, нужно ли выполнять только запрос на вставку перед выполнением функции LastInsertId.
Подробнее здесь: https://stackoverflow.com/questions/791 ... in-php-pdo
Мобильная версия