Annotation of embedaddon/php/ext/mysqli/tests/bug35759.phpt, revision 1.1.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>