Annotation of embedaddon/php/ext/mysqli/tests/bug34810.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #34810 (mysqli::init() and others use wrong $this pointer without checks)
! 3: --SKIPIF--
! 4: <?php
! 5: require_once('skipif.inc');
! 6: require_once('skipifconnectfailure.inc');
! 7: ?>
! 8: --FILE--
! 9: <?php
! 10:
! 11: class DbConnection {
! 12: public function connect() {
! 13: require_once("connect.inc");
! 14:
! 15: $link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket);
! 16: var_dump($link);
! 17:
! 18: $link = mysqli_init();
! 19: /* @ is to supress 'Property access is not allowed yet' */
! 20: @var_dump($link);
! 21:
! 22: $mysql = new my_mysqli($host, $user, $passwd, $db, $port, $socket);
! 23: $mysql->query("DROP TABLE IF EXISTS test_warnings");
! 24: $mysql->query("CREATE TABLE test_warnings (a int not null)");
! 25: $mysql->query("SET sql_mode=''");
! 26: $mysql->query("INSERT INTO test_warnings VALUES (1),(2),(NULL)");
! 27:
! 28: $warning = $mysql->get_warnings();
! 29: if (!$warning)
! 30: printf("[001] No warning!\n");
! 31:
! 32: if ($warning->errno == 1048 || $warning->errno == 1253) {
! 33: /* 1048 - Column 'a' cannot be null, 1263 - Data truncated; NULL supplied to NOT NULL column 'a' at row */
! 34: if ("HY000" != $warning->sqlstate)
! 35: printf("[003] Wrong sql state code: %s\n", $warning->sqlstate);
! 36:
! 37: if ("" == $warning->message)
! 38: printf("[004] Message string must not be empty\n");
! 39:
! 40:
! 41: } else {
! 42: printf("[002] Empty error message!\n");
! 43: var_dump($warning);
! 44: }
! 45: }
! 46: }
! 47:
! 48: $db = new DbConnection();
! 49: $db->connect();
! 50:
! 51: echo "Done\n";
! 52: ?>
! 53: --CLEAN--
! 54: <?php
! 55: require_once("connect.inc");
! 56: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
! 57: printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
! 58:
! 59: if (!mysqli_query($link, "DROP TABLE IF EXISTS test_warnings"))
! 60: printf("[c002] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 61:
! 62: mysqli_close($link);
! 63: ?>
! 64: --EXPECTF--
! 65: object(mysqli)#%d (%d) {
! 66: [%u|b%"affected_rows"]=>
! 67: int(0)
! 68: [%u|b%"client_info"]=>
! 69: %unicode|string%(%d) "%s"
! 70: [%u|b%"client_version"]=>
! 71: int(%d)
! 72: [%u|b%"connect_errno"]=>
! 73: int(0)
! 74: [%u|b%"connect_error"]=>
! 75: NULL
! 76: [%u|b%"errno"]=>
! 77: int(0)
! 78: [%u|b%"error"]=>
! 79: %unicode|string%(0) ""
! 80: [%u|b%"field_count"]=>
! 81: int(0)
! 82: [%u|b%"host_info"]=>
! 83: %unicode|string%(%d) "%s"
! 84: [%u|b%"info"]=>
! 85: NULL
! 86: [%u|b%"insert_id"]=>
! 87: int(0)
! 88: [%u|b%"server_info"]=>
! 89: %unicode|string%(%d) "%s"
! 90: [%u|b%"server_version"]=>
! 91: int(%d)
! 92: ["stat"]=>
! 93: %s
! 94: [%u|b%"sqlstate"]=>
! 95: %unicode|string%(5) "00000"
! 96: [%u|b%"protocol_version"]=>
! 97: int(10)
! 98: [%u|b%"thread_id"]=>
! 99: int(%d)
! 100: [%u|b%"warning_count"]=>
! 101: int(0)
! 102: }
! 103: object(mysqli)#%d (%d) {
! 104: [%u|b%"affected_rows"]=>
! 105: NULL
! 106: [%u|b%"client_info"]=>
! 107: %unicode|string%(%d) "%s"
! 108: [%u|b%"client_version"]=>
! 109: int(%d)
! 110: [%u|b%"connect_errno"]=>
! 111: int(0)
! 112: [%u|b%"connect_error"]=>
! 113: NULL
! 114: [%u|b%"errno"]=>
! 115: int(0)
! 116: [%u|b%"error"]=>
! 117: %unicode|string%(0) ""
! 118: [%u|b%"field_count"]=>
! 119: NULL
! 120: [%u|b%"host_info"]=>
! 121: NULL
! 122: [%u|b%"info"]=>
! 123: NULL
! 124: [%u|b%"insert_id"]=>
! 125: NULL
! 126: [%u|b%"server_info"]=>
! 127: NULL
! 128: [%u|b%"server_version"]=>
! 129: NULL
! 130: ["stat"]=>
! 131: NULL
! 132: [%u|b%"sqlstate"]=>
! 133: NULL
! 134: [%u|b%"protocol_version"]=>
! 135: NULL
! 136: [%u|b%"thread_id"]=>
! 137: NULL
! 138: [%u|b%"warning_count"]=>
! 139: NULL
! 140: }
! 141: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>