1--TEST-- 2mysqli_stmt_data_seek() 3--SKIPIF-- 4<?php 5require_once('skipif.inc'); 6require_once('skipifconnectfailure.inc'); 7?> 8--FILE-- 9<?php 10 require_once("connect.inc"); 11 12 require('table.inc'); 13 14 if (!$stmt = mysqli_stmt_init($link)) 15 printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 16 17 try { 18 mysqli_stmt_data_seek($stmt, 1); 19 } catch (Error $exception) { 20 echo $exception->getMessage() . "\n"; 21 } 22 23 if (!mysqli_stmt_prepare($stmt, "SELECT id FROM test ORDER BY id")) 24 printf("[005] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); 25 26 if (true !== ($tmp = mysqli_stmt_execute($stmt))) 27 printf("[006] Expecting boolean/true, got %s/%s\n", gettype($tmp), $tmp); 28 29 30 $id = null; 31 if (!mysqli_stmt_bind_result($stmt, $id)) 32 printf("[007] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); 33 34 if (!mysqli_stmt_store_result($stmt)) 35 printf("[008] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); 36 37 if (!is_null($tmp = mysqli_stmt_data_seek($stmt, 2))) 38 printf("[009] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); 39 40 if (!mysqli_stmt_fetch($stmt)) 41 printf("[010] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); 42 43 var_dump($id); 44 45 if (!is_null($tmp = mysqli_stmt_data_seek($stmt, 0))) 46 printf("[011] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); 47 48 if (!mysqli_stmt_fetch($stmt)) 49 printf("[012] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); 50 51 var_dump($id); 52 53 if (!is_null($tmp = mysqli_stmt_data_seek($stmt, mysqli_stmt_num_rows($stmt) + 100))) 54 printf("[013] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); 55 56 if (mysqli_stmt_fetch($stmt)) 57 printf("[014] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); 58 59 var_dump($id); 60 61 try { 62 mysqli_stmt_data_seek($stmt, -1); 63 } catch (\ValueError $e) { 64 echo $e->getMessage() . \PHP_EOL; 65 } 66 67 if (mysqli_stmt_fetch($stmt)) 68 printf("[016] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); 69 70 var_dump($id); 71 72 mysqli_stmt_close($stmt); 73 74 try { 75 mysqli_stmt_data_seek($stmt, 0); 76 } catch (Error $exception) { 77 echo $exception->getMessage() . "\n"; 78 } 79 80 mysqli_close($link); 81 print "done!"; 82?> 83--CLEAN-- 84<?php 85 require_once("clean_table.inc"); 86?> 87--EXPECTF-- 88mysqli_stmt object is not fully initialized 89int(3) 90int(1) 91int(1) 92mysqli_stmt_data_seek(): Argument #2 ($offset) must be greater than or equal to 0 93int(1) 94mysqli_stmt object is already closed 95done! 96