bug36949.phpt 1.6 KB

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