1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
--TEST--
mysqli_stmt_result_metadata()
--SKIPIF--
<?php
require_once('skipif.inc');
require_once('skipifemb.inc');
require_once('skipifconnectfailure.inc');
?>
--FILE--
<?php
require_once("connect.inc");
$tmp = NULL;
$link = NULL;
if (!is_null($tmp = @mysqli_stmt_result_metadata()))
printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
if (!is_null($tmp = @mysqli_stmt_result_metadata($link)))
printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
require('table.inc');
if (!$stmt = mysqli_stmt_init($link))
printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
if (NULL !== ($tmp = mysqli_stmt_result_metadata($stmt)))
printf("[004] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
if (!mysqli_stmt_prepare($stmt, "SELECT id, label FROM test"))
printf("[005] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
if (!is_object(($res = mysqli_stmt_result_metadata($stmt))))
printf("[006] Expecting object, got %s/%s\n", gettype($tmp), $tmp);
if (2 !== ($tmp = mysqli_num_fields($res)))
printf("[007] Expecting int/2, got %s/%s, [%d] %s\n",
gettype($tmp), $tmp, mysqli_errno($link), mysqli_error($link));
if (!is_object($field0_fetch = mysqli_fetch_field($res)))
printf("[008] Expecting object, got %s/%s, [%d] %s\n",
gettype($field0_fetch), $field0_fetch, mysqli_errno($link), mysqli_error($link));
if (!is_object($field0_direct = mysqli_fetch_field_direct($res, 0)))
printf("[009] Expecting object, got %s/%s, [%d] %s\n",
gettype($field0_direct), $field0_direct, mysqli_errno($link), mysqli_error($link));
if ($field0_fetch != $field0_direct) {
printf("[010] mysqli_fetch_field() differs from mysqli_fetch_field_direct()\n");
var_dump($field0_fetch);
var_dump($field0_direct);
}
var_dump($field0_fetch);
if (!is_array($tmp = mysqli_fetch_fields($res)))
printf("[011] Expecting array, got %s/%s, [%d] %s\n",
gettype($tmp), $tmp, mysqli_errno($link), mysqli_error($link));
if (empty($tmp[0]) || empty($tmp[1]) || $tmp[0] != $field0_direct) {
printf("[012] mysqli_fetch_fields() return value is suspicious\n");
var_dump($tmp);
}
if (!mysqli_field_seek($res, 1))
printf("[013] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
if (!is_object($field1_direct = mysqli_fetch_field_direct($res, 1)))
printf("[014] Expecting object, got %s/%s, [%d] %s\n",
gettype($field1_direct), $field1_direct, mysqli_errno($link), mysqli_error($link));
if ($tmp[1] != $field1_direct) {
printf("[015] mysqli_fetch_field_direct() differs from mysqli_fetch_fields()\n");
var_dump($field1_direct);
var_dump($tmp);
}
if (1 !== ($tmp = mysqli_field_tell($res)))
printf("[016] Expecting int/1, got %s/%s, [%d] %s\n",
gettype($tmp), $tmp, mysqli_errno($link), mysqli_error($link));
mysqli_free_result($res);
mysqli_stmt_close($stmt);
if (NULL !== ($tmp = mysqli_stmt_result_metadata($stmt)))
printf("[017] Expecting NULL, got %s/%s\n");
/* Check that the function alias exists. It's a deprecated function,
but we have not announce the removal so far, therefore we need to check for it */
if (!is_null($tmp = @mysqli_stmt_result_metadata()))
printf("[018] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
mysqli_close($link);
print "done!";
?>
--CLEAN--
<?php
require_once("clean_table.inc");
?>
--EXPECTF--
Warning: mysqli_stmt_result_metadata(): invalid object or resource mysqli_stmt
in %s on line %d
object(stdClass)#5 (13) {
[%u|b%"name"]=>
%unicode|string%(2) "id"
[%u|b%"orgname"]=>
%unicode|string%(2) "id"
[%u|b%"table"]=>
%unicode|string%(4) "test"
[%u|b%"orgtable"]=>
%unicode|string%(4) "test"
[%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(11)
[%u|b%"charsetnr"]=>
int(63)
[%u|b%"flags"]=>
int(49155)
[%u|b%"type"]=>
int(3)
[%u|b%"decimals"]=>
int(0)
}
Warning: mysqli_stmt_result_metadata(): Couldn't fetch mysqli_stmt in %s on line %d
done!
|