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?
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"
);
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);
?>
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);
?>
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);
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.
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']
.
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]);
Cela signifie qu'il n'y a pas de comparaison entre
mysqli_fetch_array
etMYSQLI_BOTH
car est un argument par défaut demysqli_fetch_array
. vous pouvez comparermysqli_fetch_array
avecmysqli_fetch_assoc
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