Annotation of embedaddon/php/ext/mysqli/tests/bug35759.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #35759 (mysqli_stmt_bind_result() makes huge allocation when column empty)
! 3: --SKIPIF--
! 4: <?php
! 5: require_once('skipif.inc');
! 6: require_once('skipifconnectfailure.inc');
! 7: ?>
! 8: --FILE--
! 9: <?php
! 10:
! 11: require_once("connect.inc");
! 12: $col_num= 1000;
! 13:
! 14: $mysql = new mysqli($host, $user, $passwd, $db, $port, $socket);
! 15: $mysql->query("DROP TABLE IF EXISTS test");
! 16: $create = "CREATE TABLE test (a0 MEDIUMBLOB NOT NULL DEFAULT ''";
! 17: $i= 0;
! 18: while (++$i < $col_num) {
! 19: $create .= ", a$i MEDIUMBLOB NOT NULL DEFAULT ''";
! 20: }
! 21: $create .= ") ENGINE=MyISAM"; // doesn't work with InnoDB, which is default in 5.5
! 22:
! 23: if (!$mysql->query($create)) {
! 24: if (1101 == $mysql->errno) {
! 25: /* SQL strict mode - [1101] BLOB/TEXT column 'a0' can't have a default value */
! 26: print "done!";
! 27: exit(0);
! 28: }
! 29: printf("[001] [%d] %s\n", $mysql->errno, $mysql->error);
! 30: }
! 31:
! 32: if (!$mysql->query("INSERT INTO test (a0) VALUES ('')"))
! 33: printf("[002] [%d] %s\n", $mysql->errno, $mysql->error);
! 34:
! 35: $stmt = $mysql->prepare("SELECT * FROM test");
! 36: if ($stmt) {
! 37:
! 38: $stmt->execute();
! 39: $stmt->store_result();
! 40: for ($i = 0; $i < $col_num; $i++) {
! 41: $params[] = &$col_num;
! 42: }
! 43: call_user_func_array(array($stmt, "bind_result"), $params);
! 44: $stmt->fetch();
! 45:
! 46: $stmt->close();
! 47: } else {
! 48: printf("[003] [%d] %s\n", $mysql->errno, $mysql->error);
! 49: }
! 50:
! 51: $mysql->close();
! 52:
! 53: echo "done!";
! 54: ?>
! 55: --CLEAN--
! 56: <?php require("clean_table.inc"); ?>
! 57: --EXPECT--
! 58: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>