Foros del Web » Programando para Internet » PHP »

Cómo usar mysql_real_escape_string

Estas en el tema de Cómo usar mysql_real_escape_string en el foro de PHP en Foros del Web. Hola buenas, Tengo una duda, como se recomienda usar la función mysql_real_escape_string(), para cada parámetro, o en la consulta sql construida? Por ejemplo.. $sql = ...
  #1 (permalink)  
Antiguo 17/05/2011, 05:15
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Cómo usar mysql_real_escape_string

Hola buenas,

Tengo una duda, como se recomienda usar la función mysql_real_escape_string(), para cada parámetro, o en la consulta sql construida?

Por ejemplo..

$sql = 'SELECT * FROM users WHERE user = ' . $user;

y luego hacer mysql_query(mysql_real_escape_string($sql)) ???

Un saludo!
  #2 (permalink)  
Antiguo 17/05/2011, 05:28
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Cómo usar mysql_real_escape_string

Que tal miktrv,

Mi sugerencia es que no utilices ninguna de las dos cosas(mysql_query, mysql_real_escape_string), deberías utilizar PDO y Prepared statements.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 17/05/2011, 05:44
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Cómo usar mysql_real_escape_string

Hola muchas gracias, si.. lo que pasa es que tengo proyectos que estan hechos con mysql_ ... entonces prefiero mantenerlos así.. además van bastante rápidos, y no hay otra capa más por encima de la base de datos..

Un saludo!
  #4 (permalink)  
Antiguo 17/05/2011, 08:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Cómo usar mysql_real_escape_string

En ese caso solo debes de ocuparlo en los parámetros que sean del tipo string que vayas a insertar en tu consulta.

Aunque siempre es mejor usar Prepared Statements, te brindan mucho más seguridad que mysql_real_escape_string.

Saludos.
  #5 (permalink)  
Antiguo 17/05/2011, 08:51
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Cómo usar mysql_real_escape_string

De acuerdo, muchas gracias por tu ayuda.

Pero.. una duda, después, como hago para interpretar lo que esta en la base de datos? me explico.. si un usuario pone " ' (comilla simple)" , y en la base de datos se guarda \' , como hago para mostrar ' ?

Un saludo!
  #6 (permalink)  
Antiguo 17/05/2011, 09:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cómo usar mysql_real_escape_string

Cita:
Iniciado por miktrv Ver Mensaje
De acuerdo, muchas gracias por tu ayuda.

Pero.. una duda, después, como hago para interpretar lo que esta en la base de datos? me explico.. si un usuario pone " ' (comilla simple)" , y en la base de datos se guarda \' , como hago para mostrar ' ?

Un saludo!
Dicho escape \ solo sirve al momento de guardar la cadena en la BD, para evitar problemas con comillas.

Al momento de mostrar no deberías tener problemas, pues dichos escapes no están ya presentes.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 17/05/2011, 10:48
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Cómo usar mysql_real_escape_string

Código PHP:
$user=mysql_real_escape_string($user);
$sql "SELECT * FROM users WHERE user =  '$user'";

#o tambien asi 

$sql=sprintf("SELECT * FROM users WHERE user = '%s'",mysql_real_escape_string($user)); 
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo

Última edición por mogurbon; 17/05/2011 a las 11:14
  #8 (permalink)  
Antiguo 17/05/2011, 12:37
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Cómo usar mysql_real_escape_string

De acuerdo muchas gracias por todo, pero una última duda... comentan que solo en strings... pero.. en teoría debería de ser sobre cualquier valor que entre en nuestra BBDD, no?

Un saludo!
  #9 (permalink)  
Antiguo 17/05/2011, 12:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cómo usar mysql_real_escape_string

Cita:
Iniciado por miktrv Ver Mensaje
De acuerdo muchas gracias por todo, pero una última duda... comentan que solo en strings... pero.. en teoría debería de ser sobre cualquier valor que entre en nuestra BBDD, no?

Un saludo!
Depende del tipo de dato, aunque aparentemente no importa.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 17/05/2011, 13:32
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Cómo usar mysql_real_escape_string

Cita:
Iniciado por pateketrueke Ver Mensaje
Depende del tipo de dato, aunque aparentemente no importa.
Es decir, que hay que colocarlo en todo..

Un saludo!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:02.