12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- --TEST--
- PDO PgSQL Bug #64953 (Postgres prepared statement positional parameter casting)
- --EXTENSIONS--
- pdo
- pdo_pgsql
- --SKIPIF--
- <?php
- require __DIR__ . '/config.inc';
- require __DIR__ . '/../../../ext/pdo/tests/pdo_test.inc';
- PDOTest::skip();
- ?>
- --FILE--
- <?php
- echo "Test\n";
- require __DIR__ . '/../../../ext/pdo/tests/pdo_test.inc';
- $pdo = PDOTest::test_factory(__DIR__ . '/common.phpt');
- $pdo->setAttribute (\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
- echo "Taken from the bug report:\n";
- $st = $pdo->prepare('SELECT ?::char as i');
- $st->bindValue(1, '1');
- $st->execute();
- var_dump($st->fetch()); // return false
- $st = $pdo->prepare('SELECT (?)::char as i');
- $st->bindValue(1, '1');
- $st->execute();
- var_dump($st->fetch()); // return array(1) { ["i"]=> string(1) "1" }
- echo "Something more nasty:\n";
- $st = $pdo->prepare("SELECT :int::int as i");
- $st->execute(array(":int" => 123));
- var_dump($st->fetch());
- $st = $pdo->prepare("SELECT '''?'''::text as \":text\"");
- $st->execute();
- var_dump($st->fetch());
- ?>
- Done
- --EXPECT--
- Test
- Taken from the bug report:
- array(2) {
- ["i"]=>
- string(1) "1"
- [0]=>
- string(1) "1"
- }
- array(2) {
- ["i"]=>
- string(1) "1"
- [0]=>
- string(1) "1"
- }
- Something more nasty:
- array(2) {
- ["i"]=>
- string(3) "123"
- [0]=>
- string(3) "123"
- }
- array(2) {
- [":text"]=>
- string(3) "'?'"
- [0]=>
- string(3) "'?'"
- }
- Done
|