Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/10/2008, 14:02
Avatar de Snd234
Snd234
 
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años
Puntos: 2
Respuesta: mysql_real_escape_string() mal aplicado?

Con ver solo la consulta, seguramente tu tienes las siguientes variables:

Código PHP:
$rut "'12564879-K'";
$fecha "'2008-21-10'";
$nota "'5.6'"
(Ojo con las comillas simples dentro de la cadena)

Son esas variables las cuales le aplicas la función e integras en la consulta.

Si es así, entonces estas mal, la idea de la función es que escapes los caracteres que podrían ser inseguros, pero que sean parte del contenido, y no de la estructura de la consulta. Tu agregaste las comillas simples como parte del contenido que quieres agregar, y no como representacion de una cadena en ese campo.

La mejor forma de preparar la consulta es la siguiente:

Código PHP:
$sql sprintf("INSERT INTO notas_parciales(rut, asignatura, ano, semestre, fecha, observacion, nota, sede, carrera) VALUES('%s', %d, %d, %d, '%s', '%s', '%s', '%s', '%s')"
    
mysql_real_escape_string($rut),        // ej: 16897564-5, y no '16897564-5'
    
mysql_real_escape_string($asignatura),
    
$anio,
    
$semestre,
    
date("Y-m-d"),
    
mysql_real_escape_string($observacion),
    
$nota,
    
mysql_real_escape_string($sede),
    
mysql_real_escape_string($carrera)
); 
De esa forma te aseguras que en los campos que sean numericos, se inserte efectivamente un numero y en los texto lo mismo, y las comillas forman parte de la consulta y no del contenido.

Espero que me hallas entendido la idea
__________________
KIBIT.cl