|
| 1 | +--TEST-- |
| 2 | +pg_fetch_object() with abstract class name |
| 3 | +--EXTENSIONS-- |
| 4 | +pgsql |
| 5 | +--SKIPIF-- |
| 6 | +<?php |
| 7 | +include("skipif.inc"); |
| 8 | +?> |
| 9 | +--FILE-- |
| 10 | +<?php |
| 11 | + |
| 12 | +interface I {} |
| 13 | + |
| 14 | +abstract class C {} |
| 15 | + |
| 16 | +enum E { |
| 17 | + case A; |
| 18 | +} |
| 19 | + |
| 20 | +include "config.inc"; |
| 21 | +$table_name = "pg_fetch_object_abstract_class"; |
| 22 | +$db = pg_connect($conn_str); |
| 23 | +pg_query($db, "CREATE TABLE {$table_name} (a integer, b text)"); |
| 24 | +pg_query($db, "INSERT INTO {$table_name} VALUES(0, 'ABC')"); |
| 25 | + |
| 26 | +$sql = "SELECT * FROM $table_name WHERE a = 0"; |
| 27 | + |
| 28 | +try { |
| 29 | + $result = pg_query($db, $sql); |
| 30 | + var_dump(pg_fetch_object($result, NULL, 'I')); |
| 31 | +} catch(Throwable $e) { |
| 32 | + echo $e::class, ': ', $e->getMessage(), PHP_EOL; |
| 33 | +} |
| 34 | + |
| 35 | +try { |
| 36 | + $result = pg_query($db, $sql); |
| 37 | + var_dump(pg_fetch_object($result, NULL, 'C')); |
| 38 | +} catch(Throwable $e) { |
| 39 | + echo $e::class, ': ', $e->getMessage(), PHP_EOL; |
| 40 | +} |
| 41 | + |
| 42 | +try { |
| 43 | + $result = pg_query($db, $sql); |
| 44 | + var_dump(pg_fetch_object($result, NULL, 'E')); |
| 45 | +} catch(Throwable $e) { |
| 46 | + echo $e::class, ': ', $e->getMessage(), PHP_EOL; |
| 47 | +} |
| 48 | + |
| 49 | +?> |
| 50 | +--CLEAN-- |
| 51 | +<?php |
| 52 | +include('config.inc'); |
| 53 | +$db = @pg_connect($conn_str); |
| 54 | +@pg_query($db, "DROP TABLE IF EXISTS pg_fetch_object_abstract_class cascade"); |
| 55 | +?> |
| 56 | +--EXPECT-- |
| 57 | +Error: Cannot instantiate interface I |
| 58 | +Error: Cannot instantiate abstract class C |
| 59 | +Error: Cannot instantiate enum E |
0 commit comments