File tree Expand file tree Collapse file tree 4 files changed +39
-5
lines changed Expand file tree Collapse file tree 4 files changed +39
-5
lines changed Original file line number Diff line number Diff line change @@ -32,6 +32,9 @@ PHP NEWS
32
32
- PDO_ODBC:
33
33
. Fixed bug #79038 (PDOStatement::nextRowset() leaks column values). (cmb)
34
34
35
+ - SQLite3:
36
+ . Fixed bug #79294 (::columnType() may fail after SQLite3Stmt::reset()). (cmb)
37
+
35
38
- Standard:
36
39
. Fixed bug #79254 (getenv() w/o arguments not showing changes). (cmb)
37
40
Original file line number Diff line number Diff line change @@ -108,7 +108,7 @@ struct _php_sqlite3_result_object {
108
108
zval stmt_obj_zval ;
109
109
110
110
int is_prepared_statement ;
111
- int complete ;
111
+ int complete ; // unused
112
112
zend_object zo ;
113
113
};
114
114
Original file line number Diff line number Diff line change @@ -1983,7 +1983,7 @@ PHP_METHOD(sqlite3result, columnType)
1983
1983
return ;
1984
1984
}
1985
1985
1986
- if (result_obj -> complete ) {
1986
+ if (! sqlite3_data_count ( result_obj -> stmt_obj -> stmt ) ) {
1987
1987
RETURN_FALSE ;
1988
1988
}
1989
1989
@@ -2038,7 +2038,6 @@ PHP_METHOD(sqlite3result, fetchArray)
2038
2038
break ;
2039
2039
2040
2040
case SQLITE_DONE :
2041
- result_obj -> complete = 1 ;
2042
2041
RETURN_FALSE ;
2043
2042
break ;
2044
2043
@@ -2066,8 +2065,6 @@ PHP_METHOD(sqlite3result, reset)
2066
2065
RETURN_FALSE ;
2067
2066
}
2068
2067
2069
- result_obj -> complete = 0 ;
2070
-
2071
2068
RETURN_TRUE ;
2072
2069
}
2073
2070
/* }}} */
Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ Bug #79294 ()::columnType() may fail after SQLite3Stmt::reset())
3
+ --SKIPIF--
4
+ <?php
5
+ if (!extension_loaded ('sqlite3 ' )) die ('sqlite3 extension not available ' );
6
+ ?>
7
+ --FILE--
8
+ <?php
9
+ $ db = new SQLite3 (':memory: ' );
10
+ $ db ->exec ("CREATE TABLE foo (bar INT) " );
11
+ $ db ->exec ("INSERT INTO foo VALUES (1) " );
12
+
13
+ $ stmt = $ db ->prepare ("SELECT * FROM foo " );
14
+ $ res = $ stmt ->execute ();
15
+ var_dump ($ res ->fetchArray () !== false );
16
+ var_dump ($ res ->columnType (0 ));
17
+ var_dump ($ res ->fetchArray () !== false );
18
+ var_dump ($ res ->columnType (0 ));
19
+ $ stmt ->reset ();
20
+ var_dump ($ res ->fetchArray () !== false );
21
+ var_dump ($ res ->columnType (0 ));
22
+ $ res ->reset ();
23
+ var_dump ($ res ->fetchArray () !== false );
24
+ var_dump ($ res ->columnType (0 ));
25
+ ?>
26
+ --EXPECT--
27
+ bool(true)
28
+ int(1)
29
+ bool(false)
30
+ bool(false)
31
+ bool(true)
32
+ int(1)
33
+ bool(true)
34
+ int(1)
You can’t perform that action at this time.
0 commit comments