--TEST-- $res->fetch_field_direct(s) --EXTENSIONS-- mysqli --SKIPIF-- --FILE-- getMessage() . "\n"; } require('table.inc'); if (!$mysqli = new my_mysqli($host, $user, $passwd, $db, $port, $socket)) printf("[002] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $host, $user, $db, $port, $socket); if (!$res = $mysqli->query("SELECT id AS ID, label FROM test AS TEST ORDER BY id LIMIT 1")) { printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); } try { var_dump($res->fetch_field_direct(-1)); } catch (\ValueError $e) { echo $e->getMessage() . \PHP_EOL; } var_dump($res->fetch_field_direct(0)); try { var_dump($res->fetch_field_direct(2)); } catch (\ValueError $e) { echo $e->getMessage() . \PHP_EOL; } $res->free_result(); try { $res->fetch_field_direct(0); } catch (Error $exception) { echo $exception->getMessage() . "\n"; } $mysqli->close(); print "done!"; ?> --CLEAN-- --EXPECTF-- mysqli object is not fully initialized mysqli_result::fetch_field_direct(): Argument #1 ($index) must be greater than or equal to 0 object(stdClass)#%d (13) { ["name"]=> string(2) "ID" ["orgname"]=> string(2) "id" ["table"]=> string(4) "TEST" ["orgtable"]=> string(%d) "%s" ["def"]=> string(0) "" ["db"]=> string(%d) "%s" ["catalog"]=> string(%d) "%s" ["max_length"]=> int(%d) ["length"]=> int(11) ["charsetnr"]=> int(%d) ["flags"]=> int(%d) ["type"]=> int(%d) ["decimals"]=> int(%d) } mysqli_result::fetch_field_direct(): Argument #1 ($index) must be less than the number of fields for this result set mysqli_result object is already closed done!