我知道
mysqli_fetch_assoc,
mysqli_fetch_array,
mysqli_fetch
但是,MYSQLI_BOTH
等于mysqli_fetch_array
还是实际上不同?
答案 0 :(得分:28)
从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"
);
答案 1 :(得分:7)
函数也可以使用数据将数据存储在关联索引中 结果集的字段名称为键。
例如
<?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);
?>
将使用两者的属性创建单个数组。
例如
<?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);
?>
答案 2 :(得分:5)
mysqli_fetch_array()
有第二个参数$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);
是平等的。
答案 3 :(得分:5)
MYSQLI_BOTH
等于mysqli_fetch_array
。
您需要数字和关联数组,然后才能使用
mysqli_fetch_array($res);
OR
mysqli_fetch_array($res, MYSQLI_BOTH);
答案 4 :(得分:4)
MYSQLI_BOTH将创建一个属性为MYSQLI_NUM和MYSQLI_ASSOC的单个数组。
来自文档:
通过使用MYSQLI_ASSOC常量,此函数的行为与mysqli_fetch_assoc()相同,而MYSQLI_NUM的行为与mysqli_fetch_row()函数相同。最后一个选项MYSQLI_BOTH将创建一个具有两者属性的单个数组。
<强>来源
答案 5 :(得分:4)
MYSQLI_BOTH
是mysqli_fetch_array
中的一个选项,允许您以关联方式访问数组,例如$result['name']
和索引,例如结果$result[0]
中的位置编号。
在mysqli_fetch_array
内,第二个参数允许使用MYSQLI_NUM
的选项,MYSQLI_ASSOC
,您可以使用关联方式访问MYSQLI_BOTH
,最后mysqli_fetch_assoc()
这允许您访问任何一种方式的值。
$result['name']
基本上允许您使用第一种方法ConcurrentModificationException
访问结果。
答案 6 :(得分:4)
mysqli_fetch_array
- 将结果行作为关联行,数字数组或两者获取
mysqli_fetch_array
1.Result
2.Result Type(可选)
1.Result
mysqli_query(),mysqli_store_result()或mysqli_use_result()返回的结果集标识符。
示例强>
$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($link, $query);
2.Result Type
MYSQLI_BOTH
- 获取结果行作为关联数字和数字数组(默认参数)
示例强>
/* associative and numeric array */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);
MYSQLI_ASSOC
- 将结果行作为关联数组获取
你可以使用替代的mysqli_fetch_assoc($ result)返回结果作为关联数组
示例强>
/* associative array */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
MYSQLI_NUM
- 以数字数组的形式获取结果行
示例强>
/* numeric array */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);
这意味着
mysqli_fetch_array
和MYSQLI_BOTH
之间没有比较,因为它是mysqli_fetch_array
的默认参数。您可以将mysqli_fetch_array
与mysqli_fetch_assoc
进行比较
答案 7 :(得分:-2)
这是一些示例代码,如果它有帮助,可以很容易理解。我使用$ stmt(它只是我学会了如何做的方式)而且我已经无数次地使用了它。我知道它可能不完全是您所需要的,但这可以帮助或帮助其他有类似问题的人。
include "../dbConnFile.php";
if($conn){
if($_POST['example1']!='' && $_POST['example2']!=''){//checks input
$stmt = $conn->prepare("INSERT INTO database (example1, example2) VALUES (?,?)");
$stmt->bind_param("ss", $_POST['example1'], $_POST['example2']);
$stmt->execute();
$stmt->close();
}
$result=$conn->query("SELECT example1, example2 FROM datasbase ORDER BY ____ DESC");
if($result){
while($tempRowHolder = mysqli_fetch_array($result,MYSQL_ASSOC)){
$records[] = $tempRowHolder;
}
}
}