Me estoy haciendo esto:MySQL fetch array agrega valores duplicados?
Array
(
[0] => 1
[id] => 1
[1] => 778613c4344dbc9565c359c1154c6a18
[session] => 778613c4344dbc9565c359c1154c6a18
[2] => fn
[first_name] => fn
[3] => ln
[last_name] => ln
[4] => un
[username] => un
[5] => 016e6128e8ca9dda1b310c364d9b622c
[password] => 016e6128e8ca9dda1b310c364d9b622c
[6] => address
[email] => address
[7] => 100
[permission] => 100
[8] => 10
[year_level] => 10
[9] =>
[department] =>
[10] => Sample
[campus] => Sample
[11] => 0
[logo_url] => 0
)
Después de ejecutar este
$user = mysql_fetch_array(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]'"))
Cualquier idea por qué se está duplicando de esta manera? Gracias
EDIT: Creo que la clave principal es hacer esto. ¿Alguna idea sobre cómo detenerlo?
-1 para repetir viejas tonterías. escaparse no tiene nada que ver con las inyecciones SQL, pero los "valores" irreflexivos harán que la inyección sea posible. –
Bueno, asegurarse de que los datos inyectados en consultas SQL sean * seguros * tiene que ver con Inyecciones de SQL; y escapar de cadenas es una forma de asegurarse de que sean * seguras *; Aún así, admito que podría haber agregado que la misma idea debería aplicarse a valores que no sean cadenas, como enteros * (asegurándose de que realmente contengan números enteros, con 'intval()' por ejemplo) * –
un viejo delirio de nuevo. escaparse no hace que los datos * sean "seguros" *. es simplemente un formateo. Y seguramente debe usarlo (para cadenas) no por la seguridad que sea, sino simplemente para mantener su SQL consistente.Enteros no es el único caso, el identificador es otro ejemplo de completa e inutilidad de escape que se suponía que haría sus "valores" "seguros" –