ID:               35793
 Comment by:       ob dot php at daevel dot fr
 Reported By:      deadman_great at mail dot ru
 Status:           No Feedback
 Bug Type:         PDO related
 Operating System: RH Fedora Core 2
 PHP Version:      5CVS-2005-12-25 (snap)
 Assigned To:      Wez
 New Comment:

This bug/problem is not solved with PHP 5.2.0 under Debian stable
(etch).

Full code :
<?php
$db = new pdo( 'mysql:host=localhost;dbname=admin', 'administration',
'XXX' );
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );

if( ( $res = $db->query( 'select id from user_group' ) ) !== false )
{
        print_r( $res->fetchAll() );
}

if( ( $res = $db->query( 'select description from user_group' ) ) !==
false )
{
        print_r( $res->fetchAll() );
}
?>

And result for the second query :
Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: 2050
 in /home/dev-olivier/toutgagner.admin/test.php on line 14
Array
(
)

Won't it be fixed ?


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

[2006-12-28 01:22:18] dennis at inmarket dot lviv dot ua

Remember to have these "fixes" in your code on every connection you
might have to the same database.

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

[2006-11-03 08:53:42] arnaud dot lb at gmail dot com

I have the same problem with php-5.2, mysql-5.0.26 on 
Debian system.

Fixed the problem using the 
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY option.

It seems that closeCursor() does not works properly.

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

[2006-11-01 15:11:55] richard at phase dot org

$this->pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);

(a suggested fix above) fails on 5.2.RC6 as PDO::ATTR_EMULATE_PREPARES
appears no longer to be defined.

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

[2006-10-17 01:15:58] michal dot vrchota at seznam dot cz

I think I have solved this problem:

You have to free your PDOStatement instance

Of course You have to call closeCursor() method to be sure, but if you
have more queries and still using same identifier ($stmt) you have free
it by passing NULL value

Sample:
$stmt->closeCursor();
$stmt = NULL;

// now it works ;)

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

[2006-10-16 14:46:09] andiesPostfach at web dot de

The Problem still exists in PHP 5.2 RC5 !!

System ist SUSE-Linux 9.3
MySQL Version 5.0.18

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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/35793

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

Reply via email to