PageRenderTime 33ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/hphp/test/zend/bad/ext/mysqli/tests/mysqli_stmt_execute_stored_proc.php

http://github.com/facebook/hiphop-php
PHP | 181 lines | 125 code | 49 blank | 7 comment | 51 complexity | 494398d14b9daf780131ebbbbb8bac10 MD5 | raw file
Possible License(s): LGPL-2.1, BSD-2-Clause, BSD-3-Clause, MPL-2.0-no-copyleft-exception, MIT, LGPL-2.0, Apache-2.0
  1. <?php
  2. require_once('connect.inc');
  3. $test_table_name = 'test_mysqli_stmt_execute_stored_proc_table_1'; require_once('table.inc');
  4. if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p'))
  5. printf("[009] [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
  6. if (mysqli_real_query($link, 'CREATE PROCEDURE p(OUT ver_param VARCHAR(25)) BEGIN SELECT VERSION() INTO ver_param; END;')) {
  7. /* no result set, one output parameter */
  8. if (!$stmt = mysqli_prepare($link, 'CALL p(@version)'))
  9. printf("[011] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
  10. if (!mysqli_stmt_execute($stmt))
  11. printf("[012] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  12. /* yes, I really want to call it twice! */
  13. if (!mysqli_stmt_execute($stmt))
  14. printf("[013] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  15. if (!mysqli_stmt_close($stmt))
  16. printf("[014] Cannot close statement, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  17. if (!$stmt = mysqli_prepare($link, 'SELECT @version AS _version'))
  18. printf("[015] Cannot prepare SELECT, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
  19. if (!mysqli_stmt_execute($stmt))
  20. printf("[016] Cannot execute SELECT, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  21. $version = 'unknown';
  22. if (!mysqli_stmt_bind_result($stmt, $version) ||
  23. !mysqli_stmt_fetch($stmt))
  24. printf("[017] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  25. if (($version == "unknown") || ($version == ""))
  26. printf("[018] Results seem wrong, got %s, [%d] %s\n",
  27. $version,
  28. mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  29. mysqli_stmt_free_result($stmt);
  30. mysqli_stmt_close($stmt);
  31. } else {
  32. printf("[010] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
  33. }
  34. if (function_exists('mysqli_stmt_get_result')) {
  35. if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p'))
  36. printf("[019] [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
  37. if (mysqli_real_query($link, 'CREATE PROCEDURE p(OUT ver_param VARCHAR(25)) BEGIN SELECT VERSION() INTO ver_param; END;')) {
  38. // no result set, one output parameter
  39. if (!$stmt = mysqli_prepare($link, 'CALL p(@version)'))
  40. printf("[020] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
  41. if (!mysqli_stmt_execute($stmt))
  42. printf("[021] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  43. if (!mysqli_stmt_close($stmt))
  44. printf("[022] Cannot close statement, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  45. if (!$stmt = mysqli_prepare($link, 'SELECT @version AS _version'))
  46. printf("[023] Cannot prepare SELECT, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
  47. if (!mysqli_stmt_execute($stmt))
  48. printf("[024] Cannot execute SELECT, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  49. if (!$res = mysqli_stmt_get_result($stmt))
  50. printf("[025] Cannot get result set, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  51. if ((!($row = mysqli_fetch_assoc($res))) || ($row['_version'] == ""))
  52. printf("[026] Results seem wrong, got %s, [%d] %s\n",
  53. $row['_version'],
  54. mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  55. mysqli_free_result($res);
  56. mysqli_stmt_close($stmt);
  57. } else {
  58. printf("[027] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
  59. }
  60. }
  61. if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p'))
  62. printf("[028] [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
  63. if (mysqli_real_query($link, 'CREATE PROCEDURE p(IN ver_in VARCHAR(25), OUT ver_out VARCHAR(25)) BEGIN SELECT ver_in INTO ver_out; END;')) {
  64. // no result set, one input parameter, output parameter
  65. // yes, I really do not want to bind input values...
  66. if (!$stmt = mysqli_prepare($link, "CALL p('myversion', @version)"))
  67. printf("[029] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
  68. if (!mysqli_stmt_execute($stmt))
  69. printf("[030] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  70. if (!mysqli_stmt_close($stmt))
  71. printf("[031] Cannot close statement, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  72. if (!$stmt = mysqli_prepare($link, 'SELECT @version AS _version'))
  73. printf("[032] Cannot prepare SELECT, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
  74. if (!mysqli_stmt_execute($stmt))
  75. printf("[033] Cannot execute SELECT, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  76. $version = 'unknown';
  77. if (!mysqli_stmt_bind_result($stmt, $version) ||
  78. !mysqli_stmt_fetch($stmt))
  79. printf("[034] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  80. if ($version != "myversion")
  81. printf("[035] Results seem wrong, got %s, [%d] %s\n",
  82. $version,
  83. mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  84. mysqli_stmt_free_result($stmt);
  85. mysqli_stmt_close($stmt);
  86. } else {
  87. printf("[036] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
  88. }
  89. if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p'))
  90. printf("[037] [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
  91. if (mysqli_real_query($link, 'CREATE PROCEDURE p(IN ver_in VARCHAR(25), OUT ver_out VARCHAR(25)) BEGIN SELECT ver_in INTO ver_out; END;')) {
  92. // no result set, one input parameter, output parameter
  93. // yes, I really do not want to bind input values...
  94. if (!$stmt = mysqli_prepare($link, 'CALL p(?, @version)'))
  95. printf("[038] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
  96. $version = 'myversion';
  97. if (!mysqli_stmt_bind_param($stmt, 's', $version))
  98. printf("[039] Cannot bind input parameter, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  99. if (!mysqli_stmt_execute($stmt))
  100. printf("[040] Cannot execute CALL, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  101. if (!mysqli_stmt_close($stmt))
  102. printf("[041] Cannot close statement, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  103. if (!$stmt = mysqli_prepare($link, 'SELECT @version AS _version'))
  104. printf("[042] Cannot prepare SELECT, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
  105. if (!mysqli_stmt_execute($stmt))
  106. printf("[043] Cannot execute SELECT, [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  107. $version = 'unknown';
  108. if (!mysqli_stmt_bind_result($stmt, $version) ||
  109. !mysqli_stmt_fetch($stmt))
  110. printf("[044] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  111. if ($version !== "myversion")
  112. printf("[045] Results seem wrong, got %s, [%d] %s\n",
  113. $version,
  114. mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
  115. mysqli_stmt_free_result($stmt);
  116. mysqli_stmt_close($stmt);
  117. } else {
  118. printf("[046] Cannot create SP, [%d] %s.\n", mysqli_errno($link), mysqli_error($link));
  119. }
  120. mysqli_close($link);
  121. print "done!";
  122. ?>
  123. <?php error_reporting(0); ?>
  124. <?php
  125. require_once("connect.inc");
  126. if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
  127. printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
  128. if (!mysqli_query($link, "DROP TABLE IF EXISTS test_bind_fetch"))
  129. printf("[c002] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
  130. @mysqli_query($link, 'DROP PROCEDURE IF EXISTS p');
  131. mysqli_close($link);
  132. ?>