prepare('insert into testtable(id) values(1); select * from testtable where id = ?; update testtable 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()); //WORKS: SELECT, followed by UPDATE //Output: //Rowset 1 //Results detected $handle2 = $link->prepare('select * from testtable where id = ?; update testtable 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()); //WORKS: UPDATE, followed by SELECT //Output: //Rowset 1 //Rowset 2 //Results detected $handle3 = $link->prepare('update testtable set id = 2 where id = ?; select * from testtable 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()); //DOESN'T WORK: INSERT, followed by UPDATE, followed by SELECT //Output: //Rowset 1 //Expected output: same as examples 1 and 3 $handle4 = $link->prepare('insert into testtable(id) values(3); update testtable set id = 2 where id = ?; select * from testtable 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()); ?>