--TEST-- PDO MySQL Bug #61207 (PDO::nextRowset() after a multi-statement query doesn't always work) --EXTENSIONS-- pdo_mysql --SKIPIF-- --FILE-- query('CREATE TABLE `test_61207`(`id` INT)'); $handle1 = $db->prepare('INSERT INTO test_61207(id) VALUES (1); SELECT * FROM test_61207 WHERE id = ?; UPDATE test_61207 SET id = 2 WHERE id = ?;'); $handle1->bindValue(1, '1'); $handle1->bindValue(2, '1'); $handle1->execute(); $i = 1; print("Handle 1:\n"); do { print('Rowset ' . $i++ . "\n"); if ($handle1->columnCount() > 0) print("Results detected\n"); } while($handle1->nextRowset()); $handle2 = $db->prepare('SELECT * FROM test_61207 WHERE id = ?; UPDATE test_61207 SET id = 1 WHERE id = ?;'); $handle2->bindValue(1, '2'); $handle2->bindValue(2, '2'); $handle2->execute(); $i = 1; print("Handle 2:\n"); do { print('Rowset ' . $i++ . "\n"); if ($handle2->columnCount() > 0) print("Results detected\n"); } while($handle2->nextRowset()); $handle3 = $db->prepare('UPDATE test_61207 SET id = 2 WHERE id = ?; SELECT * FROM test_61207 WHERE id = ?;'); $handle3->bindValue(1, '1'); $handle3->bindValue(2, '2'); $handle3->execute(); $i = 1; print("Handle 3:\n"); do { print('Rowset ' . $i++ . "\n"); if ($handle3->columnCount() > 0) print("Results detected\n"); } while($handle3->nextRowset()); $handle4 = $db->prepare('INSERT INTO test_61207(id) VALUES (3); UPDATE test_61207 SET id = 2 WHERE id = ?; SELECT * FROM test_61207 WHERE id = ?;'); $handle4->bindValue(1, '3'); $handle4->bindValue(2, '2'); $handle4->execute(); $i = 1; print("Handle 4:\n"); do { print('Rowset ' . $i++ . "\n"); if ($handle1->columnCount() > 0) print("Results detected\n"); } while($handle1->nextRowset()); ?> --CLEAN-- exec('DROP TABLE IF EXISTS test_61207'); ?> --EXPECT-- Handle 1: Rowset 1 Rowset 2 Results detected Rowset 3 Handle 2: Rowset 1 Results detected Rowset 2 Handle 3: Rowset 1 Rowset 2 Results detected Handle 4: Rowset 1 Rowset 2 Rowset 3 Results detected