1--TEST-- 2mysqli_next_result() 3--EXTENSIONS-- 4mysqli 5--SKIPIF-- 6<?php 7require_once 'skipifconnectfailure.inc'; 8?> 9--FILE-- 10<?php 11 require 'table.inc'; 12 13 if (false !== ($tmp = mysqli_next_result($link))) 14 printf("[003] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp); 15 16 $res = mysqli_query($link, "SELECT 1 AS res"); 17 if (false !== ($tmp = mysqli_next_result($link))) 18 printf("[004] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp); 19 20 mysqli_free_result($res); 21 22 function func_test_mysqli_next_result($link, $query, $offset, $num_results) { 23 24 if (!mysqli_multi_query($link, $query)) 25 printf("[%03d] [%d] %s\n", $offset, mysqli_errno($link), mysqli_error($link)); 26 27 $i = 0; 28 do { 29 if ($res = mysqli_store_result($link)) { 30 mysqli_free_result($res); 31 $i++; 32 } 33 } while (true === mysqli_next_result($link)); 34 35 if ($i !== $num_results) { 36 printf("[%03d] Expecting %d result(s), got %d result(s)\n", $offset + 2, $num_results, $i); 37 } 38 39 if (mysqli_more_results($link)) 40 printf("[%03d] mysqli_more_results() indicates more results than expected\n", $offset + 3); 41 42 if (!($res = mysqli_query($link, "SELECT 1 AS b"))) { 43 printf("[%03d] [%d] %s\n", $offset + 4, mysqli_errno($link), mysqli_error($link)); 44 } else { 45 mysqli_free_result($res); 46 } 47 48 } 49 50 func_test_mysqli_next_result($link, "SELECT 1 AS a; SELECT 1 AS a, 2 AS b; SELECT id FROM test ORDER BY id LIMIT 3", 5, 3); 51 func_test_mysqli_next_result($link, "SELECT 1 AS a; INSERT INTO test(id, label) VALUES (100, 'y'); SELECT 1 AS a, 2 AS b", 8, 2); 52 func_test_mysqli_next_result($link, "DELETE FROM test WHERE id >= 100; SELECT 1 AS a; ", 11, 1); 53 54 mysqli_close($link); 55 56 try { 57 mysqli_next_result($link); 58 } catch (Error $exception) { 59 echo $exception->getMessage() . "\n"; 60 } 61 62 print "done!"; 63?> 64--CLEAN-- 65<?php 66 require_once 'clean_table.inc'; 67?> 68--EXPECT-- 69mysqli object is already closed 70done! 71