bug36949.phpt 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. --TEST--
  2. Bug #36949 (invalid internal mysqli objects dtor)
  3. --SKIPIF--
  4. <?php
  5. require_once('skipif.inc');
  6. require_once('skipifconnectfailure.inc');
  7. ?>
  8. --FILE--
  9. <?php
  10. require_once("connect.inc");
  11. class A {
  12. private $mysqli;
  13. public function __construct() {
  14. global $user, $host, $passwd, $db, $port, $socket;
  15. $this->mysqli = new mysqli($host, $user, $passwd, $db, $port, $socket);
  16. $result = $this->mysqli->query("SELECT NOW() AS my_time FROM DUAL");
  17. $row = $result->fetch_object();
  18. echo $row->my_time."<br>\n";
  19. $result->close();
  20. }
  21. public function __destruct() {
  22. $this->mysqli->close();
  23. }
  24. }
  25. class B {
  26. private $mysqli;
  27. public function __construct() {
  28. global $user, $host, $passwd, $db, $port, $socket;
  29. $this->mysqli = new mysqli($host, $user, $passwd, $db, $port, $socket);
  30. $result = $this->mysqli->query("SELECT NOW() AS my_time FROM DUAL");
  31. $row = $result->fetch_object();
  32. echo $row->my_time."<br>\n";
  33. $result->close();
  34. }
  35. public function __destruct() {
  36. $this->mysqli->close();
  37. }
  38. }
  39. $A = new A();
  40. $B = new B();
  41. ?>
  42. --CLEAN--
  43. <?php
  44. require_once("connect.inc");
  45. if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
  46. printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
  47. if (!mysqli_query($link, "DROP TABLE IF EXISTS my_time"))
  48. printf("[002] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
  49. mysqli_close($link);
  50. ?>
  51. --EXPECTF--
  52. %d%d%d%d-%d%d-%d%d %d%d:%d%d:%d%d<br>
  53. %d%d%d%d-%d%d-%d%d %d%d:%d%d:%d%d<br>