Opmisation de script PHP-MySQL 5 octobre , 2009
La fonction mysql_fetch_array permet de renvoyer un tableau php (array) contenant les résultats de contenu d’une requète SQL.
Voici un exemple d’utilisation de cette fonction :
mysql_connect("localhost", "mysql_user", "mysql_password") or die("Impossible de se connecter : " . mysql_error()); mysql_select_db("mydb"); $result = mysql_query("SELECT id, nom FROM user WHERE id=2"); while ($row = mysql_fetch_array($result)) { echo("ID : ".$row[id]." Nom : "$row[nom]); } mysql_free_result($result); |
Le tableau renvoyé est de cette forme :
array( [0] => 2, [id] => 2, [1] => Pierre, [nom] => Pierre ) |
On peut voir que le tableau contient 2 fois les mêmes valeurs, d’où une consommation mémoire inutile.
Il est donc possible de préciser un second paramètre à la fonction mysql_fetch_array afin de retourner que des tableaux avec les intitulés ou les numéros :
MYSQL_NUM :
array( [0] => 2, [1] => Pierre ) |
MYSQL_ASSOC :
array( [id] => 2, [nom] => Pierre ) |
MYSQL_BOTH (valeur par défaut si on ne précise rien) :
array( [0] => 2, [id] => 2, [1] => Pierre, [nom] => Pierre ) |
On remplacera donc dans notre code :
while ($row = mysql_fetch_array($result)) { |
par :
while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) { |
Laissez une réponse