ID: 36228
User updated by: antleclercq at online dot fr
Reported By: antleclercq at online dot fr
Status: Bogus
Bug Type: PDO related
Operating System: Ubuntu Linux (breezy)
PHP Version: 5.1.2
Assigned To: wez
New Comment:
Thanks for your answer, but could you please post the way you would
execute those 2 queries ?
Thanks in advance,
Antoine
Previous Comments:
------------------------------------------------------------------------
[2006-04-30 01:01:04] [EMAIL PROTECTED]
If you're executing multi-statement queries, you must use
PDO::prepare(), PDOStatement::execute() and PDOStatement::nextRowset().
------------------------------------------------------------------------
[2006-03-01 12:57:02] antleclercq at online dot fr
Hi,
Any update ?
Thanks,
Antoine
------------------------------------------------------------------------
[2006-01-31 17:03:24] antleclercq at online dot fr
Hello Tony,
It looks like it returns only the number of affected rows for the first
statement...
The affected rows for the next statements don't seem to be counted.
Also : if you have an error in your first statement, you get an error,
but if the error is in one of the next statements, these are not
reported.
Hmmm... I don't know really what I would expect to get as return value
from a multi-query... Certainly a sum of all the affected rows or
better... an array with that info on each statement.
Antoine
------------------------------------------------------------------------
[2006-01-31 15:55:42] [EMAIL PROTECTED]
Just curious: what do you expect to get as the result of these
multi-statement?
PDO::exec returns number of rows expected. Since you're effectively
executing two queries - what do you expect to get?
What if one of the queries succeeds and another one fails?
------------------------------------------------------------------------
[2006-01-31 15:12:57] antleclercq at online dot fr
Description:
------------
Hello,
Executing 2 multi-statement queries gives you the following error :
2013 - Lost connection to MySQL server during query
I reproduced this error using 5.1.0RC3 and 5.1.2.
My MySQL version is 4.1.12, and I have the right MySQL / PDO
connector.
Thanks,
Antoine
Reproduce code:
---------------
<?php
$dbh = new PDO("mysql:dbname=karibou;host=localhost", "user",
"password");
try {
$qry = "DELETE FROM addressbook_address WHERE profile_id=2 ; \n";
$qry .= "DELETE FROM addressbook_phone WHERE profile_id=2 ; \n";
//No error
$dbh->exec($qry);
//The folowing line displays : Array ( [0] => 00000 )
print_r($dbh->errorInfo());
//This second exec statement produces the error : "Lost connection to
MySQL server during query"
$dbh->exec($qry);
//The following line displays : Array ( [0] => HY000 [1] => 2013 [2]
=> Lost connection to MySQL server during query )
print_r($dbh->errorInfo());
} catch (PDOException $e) {
print $e->getMessage();
die();
}
?>
Expected result:
----------------
None of the exec should return an error.
Actual result:
--------------
The second exec returns a 2013 error (Lost connection...).
Array ( [0] => HY000 [1] => 2013 [2] => Lost connection to MySQL server
during query )
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=36228&edit=1