Annotation of embedaddon/php/ext/mysqli/tests/bug35103.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bug #35103 (Bad handling of unsigned bigint)
3: --SKIPIF--
4: <?php
5: require_once('skipif.inc');
6: require_once('skipifconnectfailure.inc');
7: ?>
8: --FILE--
9: <?php
10:
11: $drop = <<<EOSQL
12: DROP TABLE test_bint;
13: DROP TABLE test_buint;
14: EOSQL;
15: require_once("connect.inc");
16:
17: $mysql = new my_mysqli($host, $user, $passwd, $db, $port, $socket);
18: $mysql->query("DROP TABLE IF EXISTS test_bint");
19: $mysql->query("CREATE TABLE test_bint (a bigint(20) default NULL) ENGINE=MYISAM");
20: $mysql->query("INSERT INTO test_bint VALUES (9223372036854775807),(-9223372036854775808),(-2147483648),(-2147483649),(-2147483647),(2147483647),(2147483648),(2147483649)");
21:
22: $mysql->query("DROP TABLE IF EXISTS test_buint");
23: $mysql->query("CREATE TABLE test_buint (a bigint(20) unsigned default NULL)");
24: $mysql->query("INSERT INTO test_buint VALUES (18446744073709551615),(9223372036854775807),(9223372036854775808),(2147483647),(2147483649),(4294967295)");
25:
26: $stmt = $mysql->prepare("SELECT a FROM test_bint ORDER BY a");
27: $stmt->bind_result($v);
28: $stmt->execute();
29: $i=0;
30: echo "BIG INT SIGNED, TEST\n";
31: while ($i++ < 8) {
32: $stmt->fetch();
33: echo $v, "\n";
34: }
35: $stmt->close();
36:
37: echo str_repeat("-", 20), "\n";
38:
39: $stmt = $mysql->prepare("SELECT a FROM test_buint ORDER BY a");
40: $stmt->bind_result($v2);
41: $stmt->execute();
42: $j=0;
43: echo "BIG INT UNSIGNED TEST\n";
44: while ($j++ < 6) {
45: $stmt->fetch();
46: echo $v2, "\n";
47: }
48: $stmt->close();
49:
50: $mysql->multi_query($drop);
51:
52: $mysql->close();
53: ?>
54: --CLEAN--
55: <?php
56: require_once("connect.inc");
57: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
58: printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
59:
60: if (!mysqli_query($link, "DROP TABLE IF EXISTS test_bint") || !mysqli_query($link, "DROP TABLE IF EXISTS test_buint"))
61: printf("[c002] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
62:
63: mysqli_close($link);
64: ?>
65: --EXPECT--
66: BIG INT SIGNED, TEST
67: -9223372036854775808
68: -2147483649
69: -2147483648
70: -2147483647
71: 2147483647
72: 2147483648
73: 2147483649
74: 9223372036854775807
75: --------------------
76: BIG INT UNSIGNED TEST
77: 2147483647
78: 2147483649
79: 4294967295
80: 9223372036854775807
81: 9223372036854775808
82: 18446744073709551615
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>