ID:               36449
 Updated by:       [EMAIL PROTECTED]
 Reported By:      brice dot joly at free dot fr
-Status:           Open
+Status:           Feedback
 Bug Type:         PDO related
 Operating System: Windows XP
 PHP Version:      5.1.2
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php5.1-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5.1-win32-latest.zip

The next snapshot dated after this message likely fixes this.


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

[2006-02-18 21:55:19] brice dot joly at free dot fr

Description:
------------
When calling a procedure from PDO with PDO::ATTR_PERSISTENT = true, I
have a very strange behaviour when refreshing the page: on odd tries it
works as expected, on even ones PDO makes the call, then loses
connection while retrieving the result. Direct and prepared call both
produce the same behaviour. Note that the call is actually ran by MySQL
in both cases (appears in the query log).

When switching PDO::ATTR_PERSISTENT to false all works as expected.

Running the test with PHP CLI works fine. I run PHP (tested with
snapshot of 17 Feb 2006, 5.1.3-dev, had the same problem with 5.1.2) as
a module, Apache 2.0.52, MySQL 5.0.18.

Reproduce code:
---------------
// MySQL Procedure
CREATE PROCEDURE test.simpleTest()
BEGIN
  SELECT 'Procedure output';
END;

// PDO call
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', 'user', 'password',
array(PDO::ATTR_PERSISTENT => true);

foreach ($dbh->query("CALL simpleTest()") as $row) {
    print_r($row);
}
$arr = $dbh->errorInfo();
print_r($arr);

/* Same problem with
$stmt = $dbh->prepare("CALL simpleTest()");
$stmt->execute();
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
    print_r($row);
}
$arr = $stmt->errorInfo();
print_r($arr);
*/
?>

Expected result:
----------------
Array
(
    [Procedure output] => Procedure output
    [0] => Procedure output
)
Array
(
    [0] => 00000
)

on odd and even tries/refresh

Actual result:
--------------
On odd tries (1st, 3rd, etc.):

Array
(
    [Procedure output] => Procedure output
    [0] => Procedure output
)
Array
(
    [0] => 00000
)

on even tries (refresh)
Array
(
    [0] => HY000
    [1] => 2013
    [2] => Lost connection to MySQL server during query
)


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


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

Reply via email to