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