Skip to content

Commit 24e0e75

Browse files
committed
Some more tests of different type
Add a way to set up a table with some data in the table helpers
1 parent 81a8e80 commit 24e0e75

File tree

8 files changed

+502
-556
lines changed

8 files changed

+502
-556
lines changed
Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
--TEST--
2+
mysqli_fetch_all()
3+
--EXTENSIONS--
4+
mysqli
5+
--SKIPIF--
6+
<?php
7+
require_once dirname(__DIR__) . "/test_setup/test_helpers.inc";
8+
mysqli_check_skip_test();
9+
?>
10+
--FILE--
11+
<?php
12+
require_once dirname(__DIR__) . "/test_setup/test_helpers.inc";
13+
14+
$link = setup_table_with_data_on_default_connection('test_mysqli_fetch_all');
15+
16+
$result = mysqli_query($link, "SELECT * FROM test_mysqli_fetch_all ORDER BY id LIMIT 2");
17+
18+
echo "Default mode\n";
19+
var_dump(mysqli_fetch_all($result));
20+
mysqli_free_result($result);
21+
22+
$result = mysqli_query($link, "SELECT * FROM test_mysqli_fetch_all ORDER BY id LIMIT 2");
23+
print "Mode: MYSQLI_NUM\n";
24+
var_dump(mysqli_fetch_all($result, MYSQLI_NUM));
25+
mysqli_free_result($result);
26+
27+
$result = mysqli_query($link, "SELECT * FROM test_mysqli_fetch_all ORDER BY id LIMIT 2");
28+
print "Mode: MYSQLI_BOTH\n";
29+
var_dump(mysqli_fetch_all($result, MYSQLI_BOTH));
30+
mysqli_free_result($result);
31+
32+
$result = mysqli_query($link, "SELECT * FROM test_mysqli_fetch_all ORDER BY id LIMIT 2");
33+
print "Mode: MYSQLI_ASSOC\n";
34+
var_dump(mysqli_fetch_all($result, MYSQLI_ASSOC));
35+
36+
echo "mysqli_fetch_all() after fetching\n";
37+
var_dump(mysqli_fetch_all($result));
38+
mysqli_free_result($result);
39+
40+
$result = mysqli_query($link, "SELECT 1 AS a, 2 AS a, 3 AS c, 4 AS C, NULL AS d, true AS e");
41+
print "[017]\n";
42+
var_dump(mysqli_fetch_all($result, MYSQLI_BOTH));
43+
44+
// Illegal mode
45+
try {
46+
mysqli_fetch_all($result, -10);
47+
} catch (\ValueError $e) {
48+
echo $e->getMessage() . \PHP_EOL;
49+
}
50+
mysqli_free_result($result);
51+
try {
52+
mysqli_fetch_array($result, MYSQLI_ASSOC);
53+
} catch (Error $exception) {
54+
echo $exception->getMessage() . "\n";
55+
}
56+
57+
print "done!";
58+
?>
59+
--CLEAN--
60+
<?php
61+
require_once dirname(__DIR__) . "/test_setup/test_helpers.inc";
62+
tear_down_table_on_default_connection('test_mysqli_fetch_all');
63+
?>
64+
--EXPECT--
65+
Default mode
66+
array(2) {
67+
[0]=>
68+
array(2) {
69+
[0]=>
70+
string(1) "1"
71+
[1]=>
72+
string(1) "a"
73+
}
74+
[1]=>
75+
array(2) {
76+
[0]=>
77+
string(1) "2"
78+
[1]=>
79+
string(1) "b"
80+
}
81+
}
82+
Mode: MYSQLI_NUM
83+
array(2) {
84+
[0]=>
85+
array(2) {
86+
[0]=>
87+
string(1) "1"
88+
[1]=>
89+
string(1) "a"
90+
}
91+
[1]=>
92+
array(2) {
93+
[0]=>
94+
string(1) "2"
95+
[1]=>
96+
string(1) "b"
97+
}
98+
}
99+
Mode: MYSQLI_BOTH
100+
array(2) {
101+
[0]=>
102+
array(4) {
103+
[0]=>
104+
string(1) "1"
105+
["id"]=>
106+
string(1) "1"
107+
[1]=>
108+
string(1) "a"
109+
["label"]=>
110+
string(1) "a"
111+
}
112+
[1]=>
113+
array(4) {
114+
[0]=>
115+
string(1) "2"
116+
["id"]=>
117+
string(1) "2"
118+
[1]=>
119+
string(1) "b"
120+
["label"]=>
121+
string(1) "b"
122+
}
123+
}
124+
Mode: MYSQLI_ASSOC
125+
array(2) {
126+
[0]=>
127+
array(2) {
128+
["id"]=>
129+
string(1) "1"
130+
["label"]=>
131+
string(1) "a"
132+
}
133+
[1]=>
134+
array(2) {
135+
["id"]=>
136+
string(1) "2"
137+
["label"]=>
138+
string(1) "b"
139+
}
140+
}
141+
mysqli_fetch_all() after fetching
142+
array(0) {
143+
}
144+
[017]
145+
array(1) {
146+
[0]=>
147+
array(11) {
148+
[0]=>
149+
string(1) "1"
150+
["a"]=>
151+
string(1) "2"
152+
[1]=>
153+
string(1) "2"
154+
[2]=>
155+
string(1) "3"
156+
["c"]=>
157+
string(1) "3"
158+
[3]=>
159+
string(1) "4"
160+
["C"]=>
161+
string(1) "4"
162+
[4]=>
163+
NULL
164+
["d"]=>
165+
NULL
166+
[5]=>
167+
string(1) "1"
168+
["e"]=>
169+
string(1) "1"
170+
}
171+
}
172+
mysqli_fetch_all(): Argument #2 ($mode) must be one of MYSQLI_NUM, MYSQLI_ASSOC, or MYSQLI_BOTH
173+
mysqli_result object is already closed
174+
done!

0 commit comments

Comments
 (0)