|   | php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
| 
 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits              [2020-02-21 11:25 UTC] cmb@php.net
 
-Assigned To:
+Assigned To: cmb
  [2020-02-21 12:41 UTC] cmb@php.net
  [2020-02-21 12:41 UTC] cmb@php.net
 
-Status: Assigned
+Status: Closed
  [2020-03-26 01:59 UTC] david at grudl dot com
 | |||||||||||||||||||||||||||
|  Copyright © 2001-2025 The PHP Group All rights reserved. | Last updated: Fri Oct 31 00:00:01 2025 UTC | 
Description: ------------ As expected, after an SQLite3Result has been fully processed, SQLite3Result::columnType() returns FALSE. If the result is reset by calling SQLite3Result::reset(), ::columnType() yields the expected results again; however, if the statement is reset by calling SQLite3Stmt::reset(), ::columnType() keeps returning FALSE. In other words, whenever SQLite3Result::fetchArray() succeeds (i.e. does not return FALSE), I expect SQLite3Result::columType() to succeed (i.e. not to return FALSE). However, that does not necessarily happen after calling SQLite3Stmt::reset(). Test script: --------------- <?php $db = new SQLite3(':memory:'); $db->exec("CREATE TABLE foo (bar INT)"); $db->exec("INSERT INTO foo VALUES (1)"); $stmt = $db->prepare("SELECT * FROM foo"); $res = $stmt->execute(); var_dump($res->fetchArray() !== false); var_dump($res->columnType(0)); var_dump($res->fetchArray() !== false); var_dump($res->columnType(0)); $stmt->reset(); var_dump($res->fetchArray() !== false); var_dump($res->columnType(0)); $res->reset(); var_dump($res->fetchArray() !== false); var_dump($res->columnType(0)); ?> Expected result: ---------------- bool(true) int(1) bool(false) bool(false) bool(true) int(1) bool(true) int(1) Actual result: -------------- bool(true) int(1) bool(false) bool(false) bool(true) bool(false) bool(true) int(1)