Ver Mensaje Individual
  #4 (permalink)  
Antiguo 10/07/2003, 13:34
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Supongo que haces el insert o el update con '$campo_form'. Esto lo transforma PHP en 'texto con ' dentro de el' y se lo pasa a MySQL. MySQL toma las ' como limite de campo de texto, por lo que entiende la cadena 'texto con ' y el resto le da error por no ser sintaxis valida.

La solucion es escapar la cadena que vas a introducir en la BD. Tienes funciones como addslashes() (www.php.net/addslashes) o mysql_escape_string() (www.php.net/mysql_escape_string). Luego cuando leas de la BD debes desescapar con stripslashes() (www.php.net/stripslashes).

Pero (siempre hay un pero) dependiendo de la configuracion de PHP (en concreto de magic_quotes_gpc y magic_quotes_runtime), puede que estes escapando 2 veces el campo del formulario y solo desescapandolo 1. Si magic_quotes_gpc esta a on, se escapan automaticamente los valores recibidos por GET, POST y COOKIES, con lo que no es necesario escapar los valores antes de meterlos en la BD, pero si desescaparlos. Si esta a off, debes escaparlos y desescaparlos.

Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.