Annotation of embedaddon/php/ext/mysqli/tests/bug36949.phpt, revision 1.1
1.1 ! misho 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:
! 13: private $mysqli;
! 14:
! 15: public function __construct() {
! 16: global $user, $host, $passwd, $db, $port, $socket;
! 17: $this->mysqli = new mysqli($host, $user, $passwd, $db, $port, $socket);
! 18: $result = $this->mysqli->query("SELECT NOW() AS my_time FROM DUAL");
! 19: $row = $result->fetch_object();
! 20: echo $row->my_time."<br>\n";
! 21: $result->close();
! 22: }
! 23:
! 24: public function __destruct() {
! 25: $this->mysqli->close();
! 26: }
! 27: }
! 28:
! 29: class B {
! 30:
! 31: private $mysqli;
! 32:
! 33: public function __construct() {
! 34: global $user, $host, $passwd, $db, $port, $socket;
! 35: $this->mysqli = new mysqli($host, $user, $passwd, $db, $port, $socket);
! 36: $result = $this->mysqli->query("SELECT NOW() AS my_time FROM DUAL");
! 37: $row = $result->fetch_object();
! 38: echo $row->my_time."<br>\n";
! 39: $result->close();
! 40: }
! 41:
! 42: public function __destruct() {
! 43: $this->mysqli->close();
! 44: }
! 45: }
! 46:
! 47: $A = new A();
! 48: $B = new B();
! 49: ?>
! 50: --CLEAN--
! 51: <?php
! 52: require_once("connect.inc");
! 53: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
! 54: printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
! 55:
! 56: if (!mysqli_query($link, "DROP TABLE IF EXISTS my_time"))
! 57: printf("[002] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 58:
! 59: mysqli_close($link);
! 60: ?>
! 61: --EXPECTF--
! 62: %d%d%d%d-%d%d-%d%d %d%d:%d%d:%d%d<br>
! 63: %d%d%d%d-%d%d-%d%d %d%d:%d%d:%d%d<br>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>