mysqli_fetch_array和MYSQLI_BOTH之间有什么区别?

16 php mysqli

我知道

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手册


Sat*_*aty 6

mysqli_fetch_array()

函数还可以使用结果集的字段名作为键将数据存储在关联索引中.

例如

<?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)

MYSQLI_BOTH

将创建具有两者属性的单个数组.

例如

<?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)


Cla*_*lay 5

MYSQLI_BOTH 将创建一个具有 MYSQLI_NUM 和 MYSQLI_ASSOC 属性的数组。

从文档:

通过使用 MYSQLI_ASSOC 常量,该函数的行为将与 mysqli_fetch_assoc() 相同,而 MYSQLI_NUM 的行为将与 mysqli_fetch_row() 函数相同。最后一个选项 MYSQLI_BOTH 将创建一个具有两者属性的数组。

来源

http://php.net/manual/en/mysqli-result.fetch-array.php


Pup*_*pil 5

mysqli_fetch_array()
Run Code Online (Sandbox Code Playgroud)

有第二个论点$resulttype.

有三种选择:

MYSQLI_ASSOC,MYSQLI_NUMMYSQLI_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


Mat*_*att 5

MYSQLI_BOTH是一个选项,mysqli_fetch_array它允许您以关联方式访问数组,例如$result['name'],通过索引(例如结果中的位置编号)$result[0]

在 中mysqli_fetch_array,第二个参数只允许MYSQLI_NUM使用索引方法的选项,MYSQLI_ASSOC您可以使用关联方式访问该选项,最后MYSQLI_BOTH允许您访问任何一种方式的值。

mysqli_fetch_assoc()基本上允许您使用第一种方法访问结果$result['name']


Par*_*vda 5

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)

php手册

这意味着在mysqli_fetch_arrayand之间没有可比性,MYSQLI_BOTH因为是mysqli_fetch_array.you的默认参数,可以mysqli_fetch_arraymysqli_fetch_assoc


Ram*_*mal 5

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)