@@ -18,20 +18,32 @@ $pdo = PDOTest::factory();
1818$ pdo ->exec ("create table test38253 (id integer primary key, n varchar(255)) " );
1919$ pdo ->exec ("INSERT INTO test38253 (id, n) VALUES (1, 'hi') " );
2020
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+ }
2529
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+ }
3038
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+ }
3547
3648?>
3749--CLEAN--
@@ -40,20 +52,7 @@ require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
4052$ db = PDOTest::factory ();
4153PDOTest::dropTableIfExists ($ db , "test38253 " );
4254?>
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