--TEST-- Bug #80908: pdo_mysql lastInsertId() return wrong, when table id bigger than the maximum value of int64 --EXTENSIONS-- pdo pdo_mysql --SKIPIF-- --FILE-- setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); return $db; } $db = createDB(); $db->exec('DROP TABLE IF EXISTS test'); $db->exec('CREATE TABLE test (`id` bigint(20) unsigned AUTO_INCREMENT, `name` varchar(5), primary key (`id`)) ENGINE = InnoDB AUTO_INCREMENT=10376293541461622799'); function testLastInsertId(PDO $db) { echo "Running test lastInsertId\n"; $db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false); try { $db->exec("insert into test (`name`) values ('bar')"); $id = $db->lastInsertId(); echo "Last insert id is " . $id . "\n"; } catch (PDOException $e) { echo $e->getMessage()."\n"; } } testLastInsertId($db); unset($db); echo "\n"; ?> --CLEAN-- --EXPECT-- Running test lastInsertId Last insert id is 10376293541461622799