mysqli_stmt_data_seek.phpt 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. --TEST--
  2. mysqli_stmt_data_seek()
  3. --SKIPIF--
  4. <?php
  5. require_once('skipif.inc');
  6. require_once('skipifemb.inc');
  7. require_once('skipifconnectfailure.inc');
  8. ?>
  9. --FILE--
  10. <?php
  11. require_once("connect.inc");
  12. $tmp = NULL;
  13. $link = NULL;
  14. if (!is_null($tmp = @mysqli_stmt_data_seek()))
  15. printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
  16. if (!is_null($tmp = @mysqli_stmt_data_seek($link)))
  17. printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
  18. require('table.inc');
  19. if (!$stmt = mysqli_stmt_init($link))
  20. printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
  21. if (!is_null($tmp = mysqli_stmt_data_seek($stmt, 1)))
  22. printf("[004] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
  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. if (true !== ($tmp = mysqli_stmt_execute($stmt)))
  26. printf("[006] Expecting boolean/true, got %s/%s\n", gettype($tmp), $tmp);
  27. $id = null;
  28. if (!mysqli_stmt_bind_result($stmt, $id))
  29. printf("[007] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  30. if (!mysqli_stmt_store_result($stmt))
  31. printf("[008] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  32. if (!is_null($tmp = mysqli_stmt_data_seek($stmt, 2)))
  33. printf("[009] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
  34. if (!mysqli_stmt_fetch($stmt))
  35. printf("[010] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  36. var_dump($id);
  37. if (!is_null($tmp = mysqli_stmt_data_seek($stmt, 0)))
  38. printf("[011] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
  39. if (!mysqli_stmt_fetch($stmt))
  40. printf("[012] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  41. var_dump($id);
  42. if (!is_null($tmp = mysqli_stmt_data_seek($stmt, mysqli_stmt_num_rows($stmt) + 100)))
  43. printf("[013] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
  44. if (mysqli_stmt_fetch($stmt))
  45. printf("[014] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  46. var_dump($id);
  47. if (false !== ($tmp = mysqli_stmt_data_seek($stmt, -1)))
  48. printf("[015] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
  49. if (mysqli_stmt_fetch($stmt))
  50. printf("[016] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  51. var_dump($id);
  52. mysqli_stmt_close($stmt);
  53. if (NULL !== ($tmp = mysqli_stmt_data_seek($stmt, 0)))
  54. printf("[017] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
  55. mysqli_close($link);
  56. print "done!";
  57. ?>
  58. --CLEAN--
  59. <?php
  60. require_once("clean_table.inc");
  61. ?>
  62. --EXPECTF--
  63. Warning: mysqli_stmt_data_seek(): invalid object or resource mysqli_stmt
  64. in %s on line %d
  65. int(3)
  66. int(1)
  67. int(1)
  68. Warning: mysqli_stmt_data_seek(): Offset must be positive in %s on line %d
  69. int(1)
  70. Warning: mysqli_stmt_data_seek(): Couldn't fetch mysqli_stmt in %s on line %d
  71. done!