1--TEST-- 2PDO_DBLIB: driver supports SET ROWCOUNT and SELECT @@ROWCOUNT in batch statements 3--SKIPIF-- 4<?php 5if (!extension_loaded('pdo_dblib')) die('skip not loaded'); 6require dirname(__FILE__) . '/config.inc'; 7 8if (!driver_supports_batch_statements_without_select($db)) die('xfail test will fail with this version of FreeTDS'); 9?> 10--FILE-- 11<?php 12require dirname(__FILE__) . '/config.inc'; 13 14$stmt = $db->query( 15"create table #php_pdo(id int); " . 16"set rowcount 2; " . 17"insert into #php_pdo values(1), (2), (3); " . 18"insert into #php_pdo values(4), (5), (6); " . 19"update #php_pdo set id = 4; " . 20"select @@rowcount; " 21); 22 23// check results from the create table 24var_dump($stmt->rowCount()); 25var_dump($stmt->nextRowset()); 26 27// check results from the set rowcount 28var_dump($stmt->rowCount()); 29var_dump($stmt->nextRowset()); 30 31// check results from the first insert 32var_dump($stmt->rowCount()); 33var_dump($stmt->nextRowset()); 34 35// check results from the second insert 36var_dump($stmt->rowCount()); 37var_dump($stmt->nextRowset()); 38 39// check results from the update 40var_dump($stmt->rowCount()); 41var_dump($stmt->nextRowset()); 42 43// check results from the select rowcount 44var_dump($stmt->fetchAll()); 45var_dump($stmt->rowCount()); 46var_dump($stmt->nextRowset()); 47 48// check that there are no more results 49var_dump($stmt->rowCount()); 50var_dump($stmt->nextRowset()); 51 52// now cleanup and check that the results are expected 53$stmt = $db->query("set rowcount 0;" . 54"select * from #php_pdo;" . 55"delete from #php_pdo;" . 56"drop table #php_pdo;" 57); 58 59// check results from set rowcount 60var_dump($stmt->rowCount()); 61var_dump($stmt->nextRowset()); 62 63// check results from the select 64var_dump($stmt->fetchAll()); 65var_dump($stmt->rowCount()); 66var_dump($stmt->nextRowset()); 67 68// check results from the delete 69var_dump($stmt->rowCount()); 70var_dump($stmt->nextRowset()); 71 72// check results from the drop 73var_dump($stmt->rowCount()); 74var_dump($stmt->nextRowset()); 75 76// check that there are no more results 77var_dump($stmt->rowCount()); 78var_dump($stmt->nextRowset()); 79 80?> 81--EXPECT-- 82int(-1) 83bool(true) 84int(-1) 85bool(true) 86int(2) 87bool(true) 88int(2) 89bool(true) 90int(2) 91bool(true) 92array(1) { 93 [0]=> 94 array(2) { 95 ["computed"]=> 96 int(2) 97 [0]=> 98 int(2) 99 } 100} 101int(-1) 102bool(false) 103int(-1) 104bool(false) 105int(-1) 106bool(true) 107array(4) { 108 [0]=> 109 array(2) { 110 ["id"]=> 111 int(4) 112 [0]=> 113 int(4) 114 } 115 [1]=> 116 array(2) { 117 ["id"]=> 118 int(4) 119 [0]=> 120 int(4) 121 } 122 [2]=> 123 array(2) { 124 ["id"]=> 125 int(4) 126 [0]=> 127 int(4) 128 } 129 [3]=> 130 array(2) { 131 ["id"]=> 132 int(5) 133 [0]=> 134 int(5) 135 } 136} 137int(-1) 138bool(true) 139int(4) 140bool(true) 141int(-1) 142bool(false) 143int(-1) 144bool(false) 145