ID:               39612
 Updated by:       [EMAIL PROTECTED]
 Reported By:      randy at rcs-comp dot com
-Status:           Open
+Status:           Bogus
 Bug Type:         PDO related
 Operating System: Windows XP
 PHP Version:      5.2.0
 New Comment:

>leaves the statement in a state that enables it to be
>executed again.

"executed again", not "fetched again".

SQLite3 supports sqlite3_reset() method which resets the statement and
for some reason it's still possible to fetch the results without
re-executing the statement (I think it's wrong, though).
SQLite2 does not have such a method, so closeCursor() just fetches all
the data from the statement and "leaves the statement in a state that
enables it to be executed again".
Yes, you have to re-execute it again.


Previous Comments:
------------------------------------------------------------------------

[2006-11-24 07:39:19] randy at rcs-comp dot com

Description:
------------
The documentation for PDOStatement::closeCursor():

frees up the connection to the server so that other SQL statements may
be issued, but leaves the statement in a state that enables it to be
executed again.

When using PDO with a SQLite 3 connection, this works as intended. 
However, when trying to resume with a SQLite 2 connection, fetch()
returns FALSE.

Reproduce code:
---------------
http://www.rcs-comp.com/phpcode/simple_pdo_test2.php.txt

Expected result:
----------------
4 arrays of the first row of data:

>php simple_pdo_test2.php
Array
(
    [id] => 1
    [0] => 1
    [user] => user1
    [1] => user1
    [email] => [EMAIL PROTECTED]
    [2] => [EMAIL PROTECTED]
    [time] => 1164353530
    [3] => 1164353530
    [message] => this is my message 1
    [4] => this is my message 1
    [confirmed] => 0
    [5] => 0
)
Array
(
    [id] => 1
    [0] => 1
    [user] => user1
    [1] => user1
    [email] => [EMAIL PROTECTED]
    [2] => [EMAIL PROTECTED]
    [time] => 1164353530
    [3] => 1164353530
    [message] => this is my message 1
    [4] => this is my message 1
    [confirmed] => 0
    [5] => 0
)
Array
(
    [id] => 1
    [0] => 1
    [user] => user1
    [1] => user1
    [email] => [EMAIL PROTECTED]
    [2] => [EMAIL PROTECTED]
    [time] => 1164353530
    [3] => 1164353530
    [message] => this is my message 1
    [4] => this is my message 1
    [confirmed] => 0
    [5] => 0
)
Array
(
    [id] => 1
    [0] => 1
    [user] => user1
    [1] => user1
    [email] => [EMAIL PROTECTED]
    [2] => [EMAIL PROTECTED]
    [time] => 1164353530
    [3] => 1164353530
    [message] => this is my message 1
    [4] => this is my message 1
    [confirmed] => 0
    [5] => 0
)

Actual result:
--------------
The last call to fetch() returns FALSE

>php simple_pdo_test2.php
Array
(
    [id] => 1
    [0] => 1
    [user] => user1
    [1] => user1
    [email] => [EMAIL PROTECTED]
    [2] => [EMAIL PROTECTED]
    [time] => 1164353530
    [3] => 1164353530
    [message] => this is my message 1
    [4] => this is my message 1
    [confirmed] => 0
    [5] => 0
)
Array
(
    [id] => 1
    [0] => 1
    [user] => user1
    [1] => user1
    [email] => [EMAIL PROTECTED]
    [2] => [EMAIL PROTECTED]
    [time] => 1164353530
    [3] => 1164353530
    [message] => this is my message 1
    [4] => this is my message 1
    [confirmed] => 0
    [5] => 0
)
Array
(
    [id] => 1
    [0] => 1
    [user] => user1
    [1] => user1
    [email] => [EMAIL PROTECTED]
    [2] => [EMAIL PROTECTED]
    [time] => 1164353530
    [3] => 1164353530
    [message] => this is my message 1
    [4] => this is my message 1
    [confirmed] => 0
    [5] => 0
)
bool(false)


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=39612&edit=1

Reply via email to