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