mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
49 lines
1.3 KiB
PHP
49 lines
1.3 KiB
PHP
--TEST--
|
|
Bug #80908: pdo_mysql lastInsertId() return wrong, when table id bigger than the maximum value of int64
|
|
--EXTENSIONS--
|
|
pdo_mysql
|
|
--SKIPIF--
|
|
<?php
|
|
require_once __DIR__ . '/inc/mysql_pdo_test.inc';
|
|
MySQLPDOTest::skip();
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
require_once __DIR__ . '/inc/mysql_pdo_test.inc';
|
|
|
|
function createDB(): PDO {
|
|
$db = MySQLPDOTest::factory();
|
|
$db->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--
|
|
<?php
|
|
require_once __DIR__ . '/inc/mysql_pdo_test.inc';
|
|
$db = MySQLPDOTest::factory();
|
|
$db->exec('DROP TABLE IF EXISTS test_80908');
|
|
?>
|
|
--EXPECT--
|
|
Running test lastInsertId
|
|
Last insert id is 10376293541461622799
|