1--TEST--
2mysqli_fetch_column()
3--EXTENSIONS--
4mysqli
5--SKIPIF--
6<?php
7require_once 'skipifconnectfailure.inc';
8if ($IS_MYSQLND) {
9    die("skip libmysql only test");
10}
11?>
12--FILE--
13<?php
14
15require_once "connect.inc";
16require 'table.inc';
17mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
18
19$res = mysqli_query($link, "SELECT id, label FROM test ORDER BY id LIMIT 1");
20
21print "[001]\n";
22var_dump(mysqli_fetch_column($res));
23
24print "[002]\n";
25var_dump(mysqli_fetch_column($res));
26
27
28$res = mysqli_query($link, "SELECT
29    1 AS a,
30    2 AS a
31");
32print "[003]\n";
33var_dump(mysqli_fetch_column($res, 0));
34
35$res = mysqli_query($link, "SELECT
36    1 AS a,
37    2 AS a
38");
39print "[004]\n";
40var_dump(mysqli_fetch_column($res, 1));
41
42$res = mysqli_query($link, "SELECT
43    1 AS a,
44    2 AS a,
45    3
46");
47print "[005]\n";
48var_dump(mysqli_fetch_column($res, 2));
49
50$res = mysqli_query($link, "SELECT
51    1 AS a,
52    2 AS a,
53    3,
54    NULL AS d
55");
56print "[006]\n";
57var_dump(mysqli_fetch_column($res, 3));
58
59$res = mysqli_query($link, "SELECT
60    1 AS a,
61    2 AS a,
62    3,
63    NULL AS d,
64    true AS e
65");
66print "[007]\n";
67var_dump(mysqli_fetch_column($res, 4));
68
69$res = mysqli_query($link, "SELECT
70    1.42 AS a
71");
72print "[008]\n";
73var_dump(mysqli_fetch_column($res, 0));
74
75$res = mysqli_query($link, "SELECT
76    1.42E0 AS a
77");
78print "[009]\n";
79var_dump(mysqli_fetch_column($res, 0));
80
81$res = mysqli_query($link, "SELECT id, label FROM test ORDER BY id LIMIT 1");
82print "[010]\n";
83try {
84    var_dump(mysqli_fetch_column($res, -1));
85} catch (\ValueError $e) {
86    echo $e->getMessage(), \PHP_EOL;
87}
88
89$res = mysqli_query($link, "SELECT id, label FROM test ORDER BY id LIMIT 1");
90print "[011]\n";
91try {
92    var_dump(mysqli_fetch_column($res, 2));
93} catch (\ValueError $e) {
94    echo $e->getMessage(), \PHP_EOL;
95}
96
97mysqli_free_result($res);
98try {
99	mysqli_fetch_column($res);
100} catch (Error $exception) {
101	echo $exception->getMessage() . "\n";
102}
103
104$res = $link->query("SELECT id, label FROM test ORDER BY id LIMIT 2");
105
106print "[012]\n";
107var_dump($res->fetch_column());
108
109print "[013]\n";
110var_dump($res->fetch_column(1));
111
112mysqli_close($link);
113?>
114--CLEAN--
115<?php
116require_once "clean_table.inc";
117?>
118--EXPECT--
119[001]
120string(1) "1"
121[002]
122bool(false)
123[003]
124string(1) "1"
125[004]
126string(1) "2"
127[005]
128string(1) "3"
129[006]
130NULL
131[007]
132string(1) "1"
133[008]
134string(4) "1.42"
135[009]
136string(4) "1.42"
137[010]
138mysqli_fetch_column(): Argument #2 ($column) must be greater than or equal to 0
139[011]
140mysqli_fetch_column(): Argument #2 ($column) must be less than the number of fields for this result set
141mysqli_result object is already closed
142[012]
143string(1) "1"
144[013]
145string(1) "b"
146