Foros del Web » Programando para Internet » PHP »

Error con ' en INSERT de mysql

Estas en el tema de Error con ' en INSERT de mysql en el foro de PHP en Foros del Web. Hola: el tema es bien sencillo lo que pasa es que hago un campo para texto lo lleno con: forosdelweb ' jejeje en un campo ...
  #1 (permalink)  
Antiguo 13/03/2009, 13:08
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años
Puntos: 12
Error con ' en INSERT de mysql

Hola:

el tema es bien sencillo lo que pasa es que hago un campo para texto lo lleno con:

forosdelweb ' jejeje

en un campo que llama nombre

tomo la variable.

$name =$_POST['nombre'];

entonces $name queda con ' y genera un error de syntaxis en el INSERT
Código PHP:
mysql_query("INSERT INTO servidores 
(name) 
                    VALUES ( ' "
.$name." ') ") or die(mysql_error()); 
que puedo hacer para que me guarde la ' sin dramas ?
  #2 (permalink)  
Antiguo 13/03/2009, 13:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Error con ' en INSERT de mysql

Usa mysql_real_escape_string($name) para insertarlo en la consulta.

http://www.php.net/mysql_real_escape_string
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 13/03/2009, 13:20
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Error con ' en INSERT de mysql

y si lo filtras con mysql_real_scape_string la variable $name???

Código PHP:
$name =$_POST['nombre'];
$name=mysql_real_scape_string($name);
mysql_query("INSERT INTO servidores  
(name)  VALUES ( ' "
.$name." ') ") or die(mysql_error()); 
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #4 (permalink)  
Antiguo 13/03/2009, 13:28
 
Fecha de Ingreso: marzo-2009
Mensajes: 1
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Error con ' en INSERT de mysql

lo que yo haria seria, hacer una funcion la cual mediante la necesites la invoques ....ej:

Cita:
function crear_servidor($nombre){
$sql="insert into servidores(servidores)
values('$servidor)";
exequery($sql);
}
  #5 (permalink)  
Antiguo 13/03/2009, 13:31
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años
Puntos: 12
Respuesta: Error con ' en INSERT de mysql

Cita:
Iniciado por argy Ver Mensaje
y si lo filtras con mysql_real_scape_string la variable $name???

Código PHP:
$name =$_POST['nombre'];
$name=mysql_real_scape_string($name);
mysql_query("INSERT INTO servidores  
(name)  VALUES ( ' "
.$name." ') ") or die(mysql_error()); 
y eso que va hacer remover los caracteres ?.. como '
  #6 (permalink)  
Antiguo 13/03/2009, 13:35
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Error con ' en INSERT de mysql

lo va a hacer es escapar caracteres como " ' en las variables de entrada.

http://www.php.net/manual/es/functio...ape-string.php
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #7 (permalink)  
Antiguo 13/03/2009, 13:49
 
Fecha de Ingreso: junio-2008
Ubicación: Lima
Mensajes: 73
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Error con ' en INSERT de mysql

Lo que pasa es que al detectar el simbolo ' , el sistema asume que terminastes el bloque, y como a continuacion de ello sigue, obviamente que te va a salir, bueno en conclusion deberias de corregir el codigo de la siguiente manera:
Código PHP:
$name =$_POST['nombre']; 
$name=mysql_real_scape_string($name); 
mysql_query("INSERT INTO servidores   
(name)  VALUES ( \' "
.$name." \') ") or die(mysql_error()); 
Con el simbolo \ estas solucionando el problema
  #8 (permalink)  
Antiguo 13/03/2009, 13:53
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Error con ' en INSERT de mysql

mmmmm la función mysql_real_scape_string, hace el escape correspondiente, entonces poque escapar la comilla simple del nombre de campo????.

o es que hay algo de lo que me perdí...
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
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 00:09.