--TEST--
mysqli_stmt_result_metadata
--SKIPIF--
<?php
require_once('skipif.inc');
require_once(
'skipifconnectfailure.inc');
?>
--FILE--
<?php
    
require_once("connect.inc");

    
/*** test mysqli_connect 127.0.0.1 ***/
    
$link my_mysqli_connect($host$user$passwd$db$port$socket);

    
mysqli_select_db($link$db);

    
mysqli_query($link"DROP TABLE IF EXISTS test_affected");
    
mysqli_query($link"CREATE TABLE test_affected (foo int, bar varchar(10) character set latin1) ENGINE=" $engine);

    
mysqli_query($link"INSERT INTO test_affected VALUES (1, 'Zak'),(2, 'Greant')");

    
$stmt mysqli_prepare($link"SELECT * FROM test_affected");
    
mysqli_stmt_execute($stmt);
    
$result mysqli_stmt_result_metadata($stmt);

    echo 
"\n=== fetch_fields ===\n";
    
var_dump(mysqli_fetch_fields($result));

    echo 
"\n=== fetch_field_direct ===\n";
    
var_dump(mysqli_fetch_field_direct($result0));
    
var_dump(mysqli_fetch_field_direct($result1));

    echo 
"\n=== fetch_field ===\n";
    while (
$field mysqli_fetch_field($result)) {
        
var_dump($field);
    }

    
print_r(mysqli_fetch_lengths($result));

    
mysqli_free_result($result);


    
mysqli_stmt_close($stmt);
    
mysqli_query($link"DROP TABLE IF EXISTS test_affected");
    
mysqli_close($link);
    print 
"done!";
?>
--CLEAN--
<?php
require_once("connect.inc");
if (!
$link my_mysqli_connect($host$user$passwd$db$port$socket))
   
printf("[c001] [%d] %s\n"mysqli_connect_errno(), mysqli_connect_error());

if (!
mysqli_query($link"DROP TABLE IF EXISTS test_affected"))
    
printf("[c002] Cannot drop table, [%d] %s\n"mysqli_errno($link), mysqli_error($link));

mysqli_close($link);
?>
--EXPECTF--
=== fetch_fields ===
array(2) {
  [0]=>
  object(stdClass)#5 (13) {
    [%u|b%"name"]=>
    %unicode|string%(3) "foo"
    [%u|b%"orgname"]=>
    %unicode|string%(3) "foo"
    [%u|b%"table"]=>
    %unicode|string%(13) "test_affected"
    [%u|b%"orgtable"]=>
    %unicode|string%(13) "test_affected"
    [%u|b%"def"]=>
    %unicode|string%(0) ""
    [%u|b%"db"]=>
    %unicode|string%(%d) "%s"
    [%u|b%"catalog"]=>
    %unicode|string%(%d) "%s"
    [%u|b%"max_length"]=>
    int(0)
    [%u|b%"length"]=>
    int(%d)
    [%u|b%"charsetnr"]=>
    int(%d)
    [%u|b%"flags"]=>
    int(32768)
    [%u|b%"type"]=>
    int(3)
    [%u|b%"decimals"]=>
    int(0)
  }
  [1]=>
  object(stdClass)#6 (13) {
    [%u|b%"name"]=>
    %unicode|string%(3) "bar"
    [%u|b%"orgname"]=>
    %unicode|string%(3) "bar"
    [%u|b%"table"]=>
    %unicode|string%(13) "test_affected"
    [%u|b%"orgtable"]=>
    %unicode|string%(13) "test_affected"
    [%u|b%"def"]=>
    %unicode|string%(0) ""
    [%u|b%"db"]=>
    %unicode|string%(%d) "%s"
    [%u|b%"catalog"]=>
    %unicode|string%(%d) "%s"
    [%u|b%"max_length"]=>
    int(0)
    [%u|b%"length"]=>
    int(%d)
    [%u|b%"charsetnr"]=>
    int(%d)
    [%u|b%"flags"]=>
    int(0)
    [%u|b%"type"]=>
    int(253)
    [%u|b%"decimals"]=>
    int(0)
  }
}

=== fetch_field_direct ===
object(stdClass)#6 (13) {
  [%u|b%"name"]=>
  %unicode|string%(3) "foo"
  [%u|b%"orgname"]=>
  %unicode|string%(3) "foo"
  [%u|b%"table"]=>
  %unicode|string%(13) "test_affected"
  [%u|b%"orgtable"]=>
  %unicode|string%(13) "test_affected"
  [%u|b%"def"]=>
  %unicode|string%(0) ""
  [%u|b%"db"]=>
  %unicode|string%(%d) "%s"
  [%u|b%"catalog"]=>
  %unicode|string%(%d) "%s"
  [%u|b%"max_length"]=>
  int(0)
  [%u|b%"length"]=>
  int(%d)
  [%u|b%"charsetnr"]=>
  int(%d)
  [%u|b%"flags"]=>
  int(32768)
  [%u|b%"type"]=>
  int(3)
  [%u|b%"decimals"]=>
  int(0)
}
object(stdClass)#6 (13) {
  [%u|b%"name"]=>
  %unicode|string%(3) "bar"
  [%u|b%"orgname"]=>
  %unicode|string%(3) "bar"
  [%u|b%"table"]=>
  %unicode|string%(13) "test_affected"
  [%u|b%"orgtable"]=>
  %unicode|string%(13) "test_affected"
  [%u|b%"def"]=>
  %unicode|string%(0) ""
  [%u|b%"db"]=>
  %unicode|string%(%d) "%s"
  [%u|b%"catalog"]=>
  %unicode|string%(%d) "%s"
  [%u|b%"max_length"]=>
  int(0)
  [%u|b%"length"]=>
  int(%d)
  [%u|b%"charsetnr"]=>
  int(%d)
  [%u|b%"flags"]=>
  int(0)
  [%u|b%"type"]=>
  int(253)
  [%u|b%"decimals"]=>
  int(0)
}

=== fetch_field ===
object(stdClass)#6 (13) {
  [%u|b%"name"]=>
  %unicode|string%(3) "foo"
  [%u|b%"orgname"]=>
  %unicode|string%(3) "foo"
  [%u|b%"table"]=>
  %unicode|string%(13) "test_affected"
  [%u|b%"orgtable"]=>
  %unicode|string%(13) "test_affected"
  [%u|b%"def"]=>
  %unicode|string%(0) ""
  [%u|b%"db"]=>
  %unicode|string%(%d) "%s"
  [%u|b%"catalog"]=>
  %unicode|string%(%d) "%s"
  [%u|b%"max_length"]=>
  int(0)
  [%u|b%"length"]=>
  int(%d)
  [%u|b%"charsetnr"]=>
  int(%d)
  [%u|b%"flags"]=>
  int(32768)
  [%u|b%"type"]=>
  int(3)
  [%u|b%"decimals"]=>
  int(0)
}
object(stdClass)#5 (13) {
  [%u|b%"name"]=>
  %unicode|string%(3) "bar"
  [%u|b%"orgname"]=>
  %unicode|string%(3) "bar"
  [%u|b%"table"]=>
  %unicode|string%(13) "test_affected"
  [%u|b%"orgtable"]=>
  %unicode|string%(13) "test_affected"
  [%u|b%"def"]=>
  %unicode|string%(0) ""
  [%u|b%"db"]=>
  %unicode|string%(%d) "%s"
  [%u|b%"catalog"]=>
  %unicode|string%(%d) "%s"
  [%u|b%"max_length"]=>
  int(0)
  [%u|b%"length"]=>
  int(%d)
  [%u|b%"charsetnr"]=>
  int(%d)
  [%u|b%"flags"]=>
  int(0)
  [%u|b%"type"]=>
  int(253)
  [%u|b%"decimals"]=>
  int(0)
}
done!