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
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If this is not your bug, you can add a comment by following this link.
If this is your bug, but you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: hp-php dot net at oeri dot ch
New email:
PHP Version: OS:

 

 [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 05:01:29 2024 UTC