bug54221.phpt 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. --TEST--
  2. Bug #54221 mysqli::get_warnings segfault when used in multi queries
  3. --EXTENSIONS--
  4. mysqli
  5. --SKIPIF--
  6. <?php
  7. require_once('skipifconnectfailure.inc');
  8. ?>
  9. --INI--
  10. mysqli.max_links = 1
  11. mysqli.allow_persistent = Off
  12. mysqli.max_persistent = 0
  13. mysqli.reconnect = Off
  14. --FILE--
  15. <?php
  16. include ("connect.inc");
  17. $link = mysqli_init();
  18. if (!my_mysqli_real_connect($link, $host, $user, $passwd, $db, $port, $socket)) {
  19. printf("[002] Connect failed, [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
  20. }
  21. $create = "CREATE TEMPORARY TABLE IF NOT EXISTS t54221(a int)";
  22. $query = "$create;$create;$create;";
  23. if ($link->multi_query($query)) {
  24. do {
  25. $sth = $link->store_result();
  26. if ($link->warning_count) {
  27. $warnings = $link->get_warnings();
  28. if ($warnings) {
  29. do {
  30. echo "Warning: ".$warnings->errno.": ".$warnings->message."\n";
  31. } while ($warnings->next());
  32. }
  33. }
  34. } while ($link->more_results() && $link->next_result());
  35. }
  36. mysqli_close($link);
  37. print "done!";
  38. ?>
  39. --EXPECT--
  40. Warning: 1050: Table 't54221' already exists
  41. done!