我知道
mysqli_fetch_assoc,
mysqli_fetch_array,
mysqli_fetch
Run Code Online (Sandbox Code Playgroud)
但是,MYSQLI_BOTH等于mysqli_fetch_array或者它们实际上是不同的?
dev*_*pro 29
从PHP手册:
通过使用MYSQLI_ASSOC常量,此函数的行为与mysqli_fetch_assoc()相同,而MYSQLI_NUM的行为与mysqli_fetch_row()函数相同.最后一个选项MYSQLI_BOTH将创建一个具有两者属性的单个数组.
这些是可选参数,用于指示array将返回的类型.
以下是基本示例:
$result->fetch_array(MYSQLI_NUM);
array(
0 => "val 1",
1 => "val 2"
);
$result->fetch_array(MYSQLI_ASSOC);
array(
'key0' => "val 1",
'key1' => "val 2"
);
$result->fetch_array(MYSQLI_BOTH);
array(
0 => "val 1",
'key0' => "val 1",
1 => "val 2",
'key1' => "val 2"
);
Run Code Online (Sandbox Code Playgroud)
函数还可以使用结果集的字段名作为键将数据存储在关联索引中.
例如
<?php
mysqli_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysqli_error());
mysqli_select_db("mydb");
$result = mysqli_query("SELECT id, name FROM mytable");
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
printf ("ID: %s Name: %s", $row["id"], $row["name"]);
}
mysqli_free_result($result);
?>
Run Code Online (Sandbox Code Playgroud)
将创建具有两者属性的单个数组.
例如
<?php
mysqli_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysqli_error());
mysqli_select_db("mydb");
$result = mysqli_query("SELECT id, name FROM mytable");
while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
printf ("ID: %s Name: %s", $row[0], $row["name"]);
}
mysqli_free_result($result);
?>
Run Code Online (Sandbox Code Playgroud)
MYSQLI_BOTH 将创建一个具有 MYSQLI_NUM 和 MYSQLI_ASSOC 属性的数组。
从文档:
通过使用 MYSQLI_ASSOC 常量,该函数的行为将与 mysqli_fetch_assoc() 相同,而 MYSQLI_NUM 的行为将与 mysqli_fetch_row() 函数相同。最后一个选项 MYSQLI_BOTH 将创建一个具有两者属性的数组。
来源
mysqli_fetch_array()
Run Code Online (Sandbox Code Playgroud)
有第二个论点$resulttype.
有三种选择:
MYSQLI_ASSOC,MYSQLI_NUM或MYSQLI_BOTH.
含义:
MYSQLI_ASSOC:获取关联数组
MYSQLI_NUM:获取数字数组
MYSQLI_BOTH:获取关联和数字数组.
MYSQLI_BOTH是默认值.
如果我们不提供第二个参数,MYSQLI_BOTH将被考虑.
所以,声明:
$ result = mysqli_fetch_array($ res,MYSQLI_BOTH);
和
$ result = mysqli_fetch_array($ res);
是平等的.
http://php.net/manual/en/mysqli-result.fetch-array.php
MYSQLI_BOTH是一个选项,mysqli_fetch_array它允许您以关联方式访问数组,例如$result['name'],通过索引(例如结果中的位置编号)$result[0]。
在 中mysqli_fetch_array,第二个参数只允许MYSQLI_NUM使用索引方法的选项,MYSQLI_ASSOC您可以使用关联方式访问该选项,最后MYSQLI_BOTH允许您访问任何一种方式的值。
mysqli_fetch_assoc()基本上允许您使用第一种方法访问结果$result['name']。
mysqli_fetch_array — 以关联数组、数值数组或两者的形式获取结果行
有两个参数 mysqli_fetch_array
1.结果
2.结果类型(可选)
1.结果
由mysqli_query()、mysqli_store_result() 或 mysqli_use_result()返回的结果集标识符。
例子
$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($link, $query);
Run Code Online (Sandbox Code Playgroud)
2.结果类型
MYSQLI_BOTH - 获取结果行作为关联数组和数字数组(默认参数)
例子
/* associative and numeric array */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);
Run Code Online (Sandbox Code Playgroud)
MYSQLI_ASSOC - 获取结果行作为关联数组
您可以使用替代 mysqli_fetch_assoc($result) 返回结果作为关联数组
例子
/* associative array */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
Run Code Online (Sandbox Code Playgroud)
MYSQLI_NUM - 获取结果行作为数值数组
例子
/* numeric array */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);
Run Code Online (Sandbox Code Playgroud)
这意味着在
mysqli_fetch_arrayand之间没有可比性,MYSQLI_BOTH因为是mysqli_fetch_array.you的默认参数,可以mysqli_fetch_array与mysqli_fetch_assoc
MYSQLI_BOTH等于mysqli_fetch_array。
您需要数字数组和关联数组,然后可以使用
mysqli_fetch_array($res);
Run Code Online (Sandbox Code Playgroud)
要么
mysqli_fetch_array($res, MYSQLI_BOTH);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24069 次 |
| 最近记录: |