mysqli_stmt_attr_get.phpt 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. --TEST--
  2. mysqli_stmt_attr_get()
  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_attr_get()))
  15. printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
  16. if (!is_null($tmp = @mysqli_stmt_attr_get($link)))
  17. printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
  18. if (!is_null($tmp = @mysqli_stmt_attr_get($link, $link)))
  19. printf("[003] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
  20. require('table.inc');
  21. if (!is_null($tmp = @mysqli_stmt_attr_get($link, $link)))
  22. printf("[004] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
  23. $valid_attr = array("max_length" => MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH);
  24. if (mysqli_get_client_version() > 50003)
  25. $valid_attr["cursor_type"] = MYSQLI_STMT_ATTR_CURSOR_TYPE;
  26. if ($IS_MYSQLND && mysqli_get_client_version() > 50007)
  27. $valid_attr["prefetch_rows"] = MYSQLI_STMT_ATTR_PREFETCH_ROWS;
  28. do {
  29. $invalid_attr = mt_rand(0, 10000);
  30. } while (in_array($invalid_attr, $valid_attr));
  31. $stmt = mysqli_stmt_init($link);
  32. mysqli_stmt_prepare($stmt, 'SELECT * FROM test');
  33. if (false !== ($tmp = @mysqli_stmt_attr_get($stmt, $invalid_attr)))
  34. printf("[005] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp);
  35. foreach ($valid_attr as $k => $attr) {
  36. if (false === ($tmp = mysqli_stmt_attr_get($stmt, $attr))) {
  37. printf("[006] Expecting any type, but not boolean/false, got %s/%s for attribute %s/%s\n",
  38. gettype($tmp), $tmp, $k, $attr);
  39. }
  40. }
  41. $stmt->close();
  42. foreach ($valid_attr as $k => $attr) {
  43. if (!is_null($tmp = @mysqli_stmt_attr_get($stmt, $attr))) {
  44. printf("[007] Expecting NULL/NULL, got %s/%s for attribute %s/%s\n",
  45. gettype($tmp), $tmp, $k, $attr);
  46. }
  47. }
  48. mysqli_close($link);
  49. print "done!";
  50. ?>
  51. --CLEAN--
  52. <?php
  53. require_once("clean_table.inc");
  54. ?>
  55. --EXPECTF--
  56. done!