Edit report at https://bugs.php.net/bug.php?id=61207&edit=1
ID: 61207 User updated by: acabal at ucla dot edu Reported by: acabal at ucla dot edu Summary: PDO::nextRowset() after a multi-statement query doesn't always work Status: Open Type: Bug Package: PDO related Operating System: Ubuntu 11.10 64-bit PHP Version: 5.4.0RC8 Block user comment: N Private report: N New Comment: Oops, a small typo in the linked example script: In the bugged example, I typed $handle1 instead of $handle4 in the do loop. Interestingly the script still produces the same bugged output even with the typo. Previous Comments: ------------------------------------------------------------------------ [2012-02-29 05:45:49] acabal at ucla dot edu Description: ------------ After executing a single multi-statement query in PDO in which the statements are INSERT, followed by UPDATE, followed by SELECT, then trying to loop over the results using PDO::nextRowset(), the function returns FALSE (i.e. no more rowsets) after the UPDATE rowset, but before reaching the SELECT rowset. Thus the SELECT rowset is lost. I tried several permutations of multi-statement queries. INSERT, then SELECT, then UPDATE works; SELECT then UPDATE works; UPDATE then SELECT works; only INSERT, then UPDATE, then SELECT fails. See the below code for those examples plus the bugged example. I originally ran in to this problem on PHP 5.3.5, but it still appears in PHP 5.4.0RC8. Test script: --------------- First create the following MySQL test db/table: create database `test`character set utf8 collate utf8_general_ci; create table `test`.`testtable`( `id` int ); Next check this example code to see the bug in action. There are four examples in the code, the first three work, and the last one is the bug. http://pastebin.com/EKePD6e2 The bug tracker suggested a link for code longer than 20 lines, though I can provide the example script directly in this bug report if that would be helpful. Expected result: ---------------- Handle 1: Rowset 1 Rowset 2 Results detected Handle 2: Rowset 1 Results detected Handle 3: Rowset 1 Rowset 2 Results detected Handle 4: Rowset 1 Rowset 2 Results detected Actual result: -------------- Handle 1: Rowset 1 Rowset 2 Results detected Handle 2: Rowset 1 Results detected Handle 3: Rowset 1 Rowset 2 Results detected Handle 4: Rowset 1 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=61207&edit=1