--TEST-- Bug #80908: pdo_mysql lastInsertId() return wrong, when table id bigger than the maximum value of int64 --EXTENSIONS-- pdo_mysql --SKIPIF-- --FILE-- setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); return $db; } $db = createDB(); $db->exec('CREATE TABLE test_80908 (`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_80908 (`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-- exec('DROP TABLE IF EXISTS test_80908'); ?> --EXPECT-- Running test lastInsertId Last insert id is 10376293541461622799