Mysql
 sql >> Base de données >  >> RDS >> Mysql

Le tableau de récupération MySQL ajoute des valeurs en double ?

Si vous ne spécifiez pas de type de résultat comme second paramètre, mysql_fetch_array() sera par défaut MYSQL_BOTH (citant) :


Si ce n'est pas ce que vous voulez, vous devez passer un deuxième paramètre à cette fonction, pour indiquer quel type de résultats vous voulez.

Par exemple, pour obtenir uniquement un tableau associatif avec des noms de colonnes comme clés :

$result = mysql_query("SELECT session FROM users WHERE username='$cookie[username]' AND first_name='$cookie[first_name]' AND last_name='$cookie[last_name]' AND campus='$cookie[campus]' AND id='$cookie[id]'");
$user = mysql_fetch_array($result, MYSQL_ASSOC);


En guise de remarque :

  • Assurez-vous d'échapper les variables que vous injectez dans votre requête, pour éviter les Injections SQL , en utilisant par exemple mysql_real_escape_string()
  • Avant d'utiliser mysql_fetch_array() , vous devriez tester si mysql_query() a réussi,
  • Et, surtout pour un nouveau projet, vous devez utiliser mysqli ou AOP , et non l'ancien mysql_* fonctions -- voir Choisir une API .