php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #43271 firebird: closeCursor not implemented
Submitted: 2007-11-12 21:13 UTC Modified: 2007-11-16 12:29 UTC
From: hp-php dot net at oeri dot ch Assigned: lwe (profile)
Status: Closed Package: PDO related
PHP Version: 5.3CVS-2007-11-12 (CVS) OS: Linux 2.6
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please !
Your email address:
MUST BE VALID
Solve the problem:
1 + 30 = ?
Subscribe to this entry?

 
 [2007-11-12 21:13 UTC] hp-php dot net at oeri dot ch
Description:
------------
It seems that PDOStatement->closeCursor is not implemented for pdo_firebird. I'm unable to re-use prepared statements...

I tried to implement a minimalistic version:

http://php.pastebin.com/f476261f8


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2007-11-13 18:15 UTC] johannes@php.net
Lars, you recently spent some time on firebird issues, can you review this report?
 [2007-11-14 22:19 UTC] lwe@php.net
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.

Actually there was a bug in execute(), which didn't close an open cursor before attempting to execute the second time. This bug is fixed, so it is now possible to make repeated calls to execute on one prepared statement.
But added closecursor() anyway as it wouldn't do any harm, and it does make sense, if one uses named cursors (set by set_attribute())

Fixed in PHP_5_3 branch.

/Lars
 [2007-11-15 08:52 UTC] hp-php dot net at oeri dot ch
The patch is/was faulty. To regain "compileability":

diff -r1.18.2.1.2.5.2.6 firebird_statement.c
633c633
<       if ((*S->name || S->cursor_open) && isc_dsql_free_statement(H->isc_status, &S->stmt, DSQL_close)) {
---
>       if ((*S->name || S->cursor_open) && isc_dsql_free_statement(S->H->isc_status, &S->stmt, DSQL_close)) {
 [2007-11-16 12:29 UTC] lwe@php.net
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.


 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Apr 19 11:01:28 2024 UTC