Mysql
 sql >> Database >  >> RDS >> Mysql

L'array di recupero MySQL aggiunge valori duplicati?

Se non specifichi un tipo di risultato come secondo parametro, mysql_fetch_array() di default sarà MYSQL_BOTH (citando) :


Se questo non è quello che vuoi, devi passare un secondo parametro a quella funzione, per indicare che tipo di risultati vuoi.

Ad esempio, per ottenere solo un array associativo con nomi di colonne come chiavi :

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


Come nota a margine :

  • Assicurati di eseguire l'escape delle variabili che inserisci nella query, per prevenire Iniezioni SQL , utilizzando, ad esempio, mysql_real_escape_string()
  • Prima di usare mysql_fetch_array() , dovresti verificare se mysql_query() ha avuto successo,
  • E, soprattutto per un nuovo progetto, dovresti usare mysqli o DOP , e non il vecchio mysql_* funzioni -- vedi Scelta di un'API .