@@ -18,20 +18,32 @@ $pdo = PDOTest::factory();
18
18
$ pdo ->exec ("create table test38253 (id integer primary key, n varchar(255)) " );
19
19
$ pdo ->exec ("INSERT INTO test38253 (id, n) VALUES (1, 'hi') " );
20
20
21
- $ pdo ->setAttribute (PDO ::ATTR_DEFAULT_FETCH_MODE , PDO ::FETCH_CLASS );
22
- $ stmt = $ pdo ->prepare ("SELECT * FROM test38253 " );
23
- $ stmt ->execute ();
24
- var_dump ($ stmt ->fetchAll ());
21
+ try {
22
+ $ pdo ->setAttribute (PDO ::ATTR_DEFAULT_FETCH_MODE , PDO ::FETCH_CLASS );
23
+ $ stmt = $ pdo ->prepare ("SELECT * FROM test38253 " );
24
+ $ stmt ->execute ();
25
+ var_dump ($ stmt ->fetchAll ());
26
+ } catch (\Throwable $ e ) {
27
+ echo $ e ::class, ': ' , $ e ->getMessage (), \PHP_EOL ;
28
+ }
25
29
26
- $ pdo ->setAttribute (PDO ::ATTR_DEFAULT_FETCH_MODE , PDO ::FETCH_FUNC );
27
- $ stmt = $ pdo ->prepare ("SELECT * FROM test38253 " );
28
- $ stmt ->execute ();
29
- var_dump ($ stmt ->fetchAll ());
30
+ try {
31
+ $ pdo ->setAttribute (PDO ::ATTR_DEFAULT_FETCH_MODE , PDO ::FETCH_FUNC );
32
+ $ stmt = $ pdo ->prepare ("SELECT * FROM test38253 " );
33
+ $ stmt ->execute ();
34
+ var_dump ($ stmt ->fetchAll ());
35
+ } catch (\Throwable $ e ) {
36
+ echo $ e ::class, ': ' , $ e ->getMessage (), \PHP_EOL ;
37
+ }
30
38
31
- $ pdo ->setAttribute (PDO ::ATTR_DEFAULT_FETCH_MODE , PDO ::FETCH_INTO );
32
- $ stmt = $ pdo ->prepare ("SELECT * FROM test38253 " );
33
- $ stmt ->execute ();
34
- var_dump ($ stmt ->fetch ());
39
+ try {
40
+ $ pdo ->setAttribute (PDO ::ATTR_DEFAULT_FETCH_MODE , PDO ::FETCH_INTO );
41
+ $ stmt = $ pdo ->prepare ("SELECT * FROM test38253 " );
42
+ $ stmt ->execute ();
43
+ var_dump ($ stmt ->fetch ());
44
+ } catch (\Throwable $ e ) {
45
+ echo $ e ::class, ': ' , $ e ->getMessage (), \PHP_EOL ;
46
+ }
35
47
36
48
?>
37
49
--CLEAN--
@@ -40,20 +52,7 @@ require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
40
52
$ db = PDOTest::factory ();
41
53
PDOTest::dropTableIfExists ($ db , "test38253 " );
42
54
?>
43
- --EXPECTF--
44
- Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: No fetch class specified in %s on line %d
45
-
46
- Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error in %s on line %d
47
- array(0) {
48
- }
49
-
50
- Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: No fetch function specified in %s on line %d
51
-
52
- Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error in %s on line %d
53
- array(0) {
54
- }
55
-
56
- Warning: PDOStatement::fetch(): SQLSTATE[HY000]: General error: No fetch-into object specified. in %s on line %d
57
-
58
- Warning: PDOStatement::fetch(): SQLSTATE[HY000]: General error in %s on line %d
59
- bool(false)
55
+ --EXPECT--
56
+ ValueError: PDO::setAttribute(): Argument #2 ($value) cannot set default fetch mode to PDO::FETCH_CLASS without PDO::FETCH_CLASSTYPE
57
+ ValueError: PDO::setAttribute(): Argument #2 ($value) PDO::FETCH_FUNC can only be used with PDOStatement::fetchAll()
58
+ ValueError: PDO::setAttribute(): Argument #2 ($value) cannot set default fetch mode to PDO::FETCH_USE_DEFAULT, PDO::FETCH_INTO, PDO::FETCH_FUNC
0 commit comments