diff options
Diffstat (limited to 'ext/pdo_sqlite/tests/bug38334.phpt')
-rw-r--r-- | ext/pdo_sqlite/tests/bug38334.phpt | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/ext/pdo_sqlite/tests/bug38334.phpt b/ext/pdo_sqlite/tests/bug38334.phpt new file mode 100644 index 0000000000..6537a28d19 --- /dev/null +++ b/ext/pdo_sqlite/tests/bug38334.phpt @@ -0,0 +1,46 @@ +--TEST-- +Bug #38334: Proper data-type support for PDO_SQLITE +--SKIPIF-- +<?php +if (!extension_loaded('pdo_sqlite')) print 'skip not loaded'; +?> +--FILE-- +<?php + +$db = new PDO('sqlite::memory:'); +$db->exec('CREATE TABLE test (i INTEGER , f DOUBLE, s VARCHAR(255))'); +$db->exec('INSERT INTO test VALUES (42, 46.7, "test")'); +var_dump($db->query('SELECT * FROM test')->fetch(PDO::FETCH_ASSOC)); + +// Check handling of integers larger than 32-bit. +$db->exec('INSERT INTO test VALUES (10000000000, 0.0, "")'); +$i = $db->query('SELECT i FROM test WHERE f = 0.0')->fetchColumn(0); +if (PHP_INT_SIZE >= 8) { + var_dump($i === 10000000000); +} else { + var_dump($i === '10000000000'); +} + +// Check storing of strings into integer/float columns. +$db->exec('INSERT INTO test VALUES ("test", "test", "x")'); +var_dump($db->query('SELECT * FROM test WHERE s = "x"')->fetch(PDO::FETCH_ASSOC)); + +?> +--EXPECT-- +array(3) { + ["i"]=> + int(42) + ["f"]=> + float(46.7) + ["s"]=> + string(4) "test" +} +bool(true) +array(3) { + ["i"]=> + string(4) "test" + ["f"]=> + string(4) "test" + ["s"]=> + string(1) "x" +} |