web-dev-qa-db-fra.com

Quelle est la différence entre mysqli_fetch_array et MYSQLI_BOTH?

Je le sais

mysqli_fetch_assoc,
mysqli_fetch_array,
mysqli_fetch

Cependant, MYSQLI_BOTH égal à mysqli_fetch_array ou sont-ils en fait différents?

16
user5755890

Depuis le manuel PHP:

En utilisant la constante MYSQLI_ASSOC, cette fonction se comportera de manière identique à la fonction mysqli_fetch_assoc (), tandis que MYSQLI_NUM se comportera de manière identique à la fonction mysqli_fetch_row (). L'option finale MYSQLI_BOTH créera un tableau unique avec les attributs des deux.

Ce sont les paramètres facultatifs qui permettent d'indiquer le type de array à retourner.

Voici les exemples de base:

$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"
);

Manuel PHP

29
devpro

mysqli_fetch_array ()

la fonction peut également stocker les données dans des indices associatifs, en utilisant les noms de champ du jeu de résultats sous forme de clés.

Par exemple

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

MYSQLI_BOTH

Crée un tableau unique avec les attributs des deux.

Par exemple

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

MYSQLI_BOTH est égal à mysqli_fetch_array.

Vous voulez à la fois un tableau numérique et associatif, vous pouvez utiliser

mysqli_fetch_array($res);

OR

mysqli_fetch_array($res, MYSQLI_BOTH);
5
Ramalingam Perumal
mysqli_fetch_array()

a un deuxième argument $resulttype.

Il y a trois options:

MYSQLI_ASSOC, MYSQLI_NUM, ou MYSQLI_BOTH.

Signification:

MYSQLI_ASSOC: Récupérer le tableau associatif

MYSQLI_NUM: Récupérer un tableau numérique

MYSQLI_BOTH: Récupère le tableau associatif et numérique.

MYSQLI_BOTH est la valeur par défaut.

si nous ne fournissons pas le deuxième paramètre, MYSQLI_BOTH seront considérées.

Ainsi, les déclarations:

$ result = mysqli_fetch_array ($ res, MYSQLI_BOTH);

ET

$ result = mysqli_fetch_array ($ res);

Sont égaux.

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

5
Pupil

MYSQLI_BOTH Est une option de mysqli_fetch_array Qui vous permet d'accéder aux tableaux de manière associative, par exemple $result['name'] Et par index, par exemple le numéro de la position dans le résultat $result[0].

Dans mysqli_fetch_array, Le deuxième paramètre permet l'option pour MYSQLI_NUM Qui utilise uniquement la méthode d'index, MYSQLI_ASSOC Auquel vous pouvez accéder en utilisant la méthode associée et enfin MYSQLI_BOTH qui vous permet d'accéder aux valeurs dans les deux sens.

mysqli_fetch_assoc() vous permet essentiellement d'accéder au résultat en utilisant la première méthode $result['name'].

4
Matt

mysqli_fetch_array - Récupère une ligne de résultat sous forme associative, un tableau numérique ou les deux

il y a deux paramètres dans mysqli_fetch_array

1. résultat

Type de résultat (facultatif)

1. résultat

Un identifiant de jeu de résultats retourné par mysqli_query (), mysqli_store_result () ou mysqli_use_result ().

exemple

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($link, $query);

2.Type de résultat

MYSQLI_BOTH - Récupère une ligne de résultat en tant que tableau associatif et numérique (paramètre par défaut)

exemple

/* associative and numeric array */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

MYSQLI_ASSOC - Récupère une ligne de résultat sous forme de tableau associatif

vous pouvez utiliser l'alternative mysqli_fetch_assoc ($ result) return result comme un tableau associatif

exemple

/* associative array */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

MYSQLI_NUM - Récupère une ligne de résultat sous forme de tableau numérique

exemple

/* numeric array */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

manuel php

Cela signifie qu'il n'y a pas de comparaison entre mysqli_fetch_array et MYSQLI_BOTH car est un argument par défaut de mysqli_fetch_array. vous pouvez comparer mysqli_fetch_array avec mysqli_fetch_assoc

4
Parth Chavda

MYSQLI_BOTH créera un tableau unique avec les attributs de MYSQLI_NUM et MYSQLI_ASSOC.

De la documentation:

En utilisant la constante MYSQLI_ASSOC, cette fonction se comportera de manière identique à la fonction mysqli_fetch_assoc (), tandis que MYSQLI_NUM se comportera de manière identique à la fonction mysqli_fetch_row (). L'option finale MYSQLI_BOTH créera un tableau unique avec les attributs des deux.

Source

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

4
Clay