057.phpt 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. --TEST--
  2. mysqli_stmt_result_metadata
  3. --EXTENSIONS--
  4. mysqli
  5. --SKIPIF--
  6. <?php
  7. require_once('skipifconnectfailure.inc');
  8. ?>
  9. --FILE--
  10. <?php
  11. require_once("connect.inc");
  12. /*** test mysqli_connect 127.0.0.1 ***/
  13. $link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket);
  14. mysqli_select_db($link, $db);
  15. mysqli_query($link,"DROP TABLE IF EXISTS test_store_result");
  16. mysqli_query($link,"CREATE TABLE test_store_result (a int)");
  17. mysqli_query($link, "INSERT INTO test_store_result VALUES (1),(2),(3)");
  18. $stmt = mysqli_prepare($link, "SELECT * FROM test_store_result");
  19. mysqli_stmt_execute($stmt);
  20. /* this should produce an out of sync error */
  21. if ($result = mysqli_query($link, "SELECT * FROM test_store_result")) {
  22. mysqli_free_result($result);
  23. printf ("Query ok\n");
  24. }
  25. mysqli_stmt_close($stmt);
  26. /* now we should try mysqli_stmt_reset() */
  27. $stmt = mysqli_prepare($link, "SELECT * FROM test_store_result");
  28. var_dump(mysqli_stmt_execute($stmt));
  29. var_dump(mysqli_stmt_reset($stmt));
  30. var_dump($stmt = mysqli_prepare($link, "SELECT * FROM test_store_result"));
  31. if ($stmt->affected_rows !== 0)
  32. printf("[001] Expecting 0, got %d\n", $stmt->affected_rows);
  33. var_dump(mysqli_stmt_execute($stmt));
  34. var_dump($stmt = @mysqli_prepare($link, "SELECT * FROM test_store_result"), mysqli_error($link));
  35. $stmt = mysqli_prepare($link, "SELECT * FROM test_store_result");
  36. mysqli_stmt_execute($stmt);
  37. $result1 = mysqli_stmt_result_metadata($stmt);
  38. mysqli_stmt_store_result($stmt);
  39. printf ("Rows: %d\n", mysqli_stmt_affected_rows($stmt));
  40. /* this should show an error, cause results are not buffered */
  41. if ($result = mysqli_query($link, "SELECT * FROM test_store_result")) {
  42. $row = mysqli_fetch_row($result);
  43. mysqli_free_result($result);
  44. }
  45. var_dump($row);
  46. mysqli_free_result($result1);
  47. mysqli_stmt_close($stmt);
  48. mysqli_close($link);
  49. echo "done!";
  50. ?>
  51. --CLEAN--
  52. <?php
  53. require_once("connect.inc");
  54. if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
  55. printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
  56. if (!mysqli_query($link, "DROP TABLE IF EXISTS test_store_result"))
  57. printf("[c002] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
  58. mysqli_close($link);
  59. ?>
  60. --EXPECTF--
  61. bool(true)
  62. bool(true)
  63. object(mysqli_stmt)#%d (%d) {
  64. ["affected_rows"]=>
  65. int(%i)
  66. ["insert_id"]=>
  67. int(0)
  68. ["num_rows"]=>
  69. int(0)
  70. ["param_count"]=>
  71. int(0)
  72. ["field_count"]=>
  73. int(1)
  74. ["errno"]=>
  75. int(0)
  76. ["error"]=>
  77. string(0) ""
  78. ["error_list"]=>
  79. array(0) {
  80. }
  81. ["sqlstate"]=>
  82. string(5) "00000"
  83. ["id"]=>
  84. int(%d)
  85. }
  86. bool(true)
  87. bool(false)
  88. string(0) ""
  89. Rows: 3
  90. array(1) {
  91. [0]=>
  92. string(1) "1"
  93. }
  94. done!