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