Foros del Web » Programando para Internet » PHP »

Envio de caracteres especiales en consulta a DB

Estas en el tema de Envio de caracteres especiales en consulta a DB en el foro de PHP en Foros del Web. Hola a todos tengo una aplicacion web desde la cual hago consultas a una base de datos en mysql, pero me he encontrado con que ...
  #1 (permalink)  
Antiguo 22/11/2010, 12:19
 
Fecha de Ingreso: septiembre-2010
Ubicación: colombia
Mensajes: 45
Antigüedad: 13 años, 7 meses
Puntos: 0
Envio de caracteres especiales en consulta a DB

Hola a todos

tengo una aplicacion web desde la cual hago consultas a una base de datos en mysql, pero me he encontrado con que un registro el cual dice "archie's" yo puedo leer el contenido de éste, pero no puedo escribir, y creo que es debido al envio de este caracter ( ' ) desde php.

Entonces mi pregunta es si para el manejo de caracteres especiales desde php hacia una base de datos (en este caso mysql) debo hacer algo para que no me cause ningun problema??

Muchas gracias!
  #2 (permalink)  
Antiguo 22/11/2010, 12:23
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: Envio de caracteres especiales en consulta a DB

Revisa la función mysql_real_escape_string

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 22/11/2010, 14:59
 
Fecha de Ingreso: septiembre-2010
Ubicación: colombia
Mensajes: 45
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Envio de caracteres especiales en consulta a DB

Muchas gracias!

ya lo estoy implementando, pero creo que el error esta apareciendo en el javascript, tiene algo que ver????

la funcion javascript que tengo le estoy enviendo el dato de la siguiente forma
showUser(\''.$db->real_escape_string($result->nombre)

y cuando voy a hacer la consulta utilizo la funcion de la siguiente forma:

$q=$_GET["q"];
$nomb = mysqli_real_escape_string($con,$q);
$sql = "SELECT * FROM directorio WHERE nombre = '".$nomb."'";
$result = mysqli_query($con,$sql);

y aun asi no esta fucnionando.....

que mas puedo probar?


muchas garcias!
  #4 (permalink)  
Antiguo 22/11/2010, 20:20
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: Envio de caracteres especiales en consulta a DB

¿Ese objeto $db de dónde sale? Fíjate que no tiene mucho sentido escapar los datos con esa función a la hora de mostrar los datos en pantalla. El uso que le das a la hora de realizar la consulta a la base de datos es correcto, pero luego de obtenido el resultado volver a escapar ya no tiene sentido.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 23/11/2010, 08:49
 
Fecha de Ingreso: septiembre-2010
Ubicación: colombia
Mensajes: 45
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Envio de caracteres especiales en consulta a DB

listo, ya corregi, tenia un pequeño error... muchisimas gracias por la colaboracion!
  #6 (permalink)  
Antiguo 09/12/2010, 08:03
 
Fecha de Ingreso: octubre-2009
Mensajes: 35
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Envio de caracteres especiales en consulta a DB

Hola! Odio tener que reabrir un tema, pero creo que también es malo (o peor) abrir otro con lo mismo.

Estoy usando utf8_unicode_ci en mi base de datos MySQL porque en un tutorial de cómo arreglar este problema de caracteres especiales, decía que era la solución.

Era eso y además agregar el siguiente código en el documento:
Código:
mysql_query ("SET NAMES 'utf8'");
¿Cuál fue el resultado?
El resultado de esto fue una salida limpia a pantalla, con excepción de algunas veces en -que en lugar del caracter especial- aparece un cuadradito blanco o un rombo negro con un signo de interrogación blanco dentro (dependiendo del navegador). Si uno refresca la página, esto puede arreglarse y se termina viendo bien, pero se imaginarán que ésa no es la idea.
También probé con utf8_decode y no pasó nada.

Etiquetas: caracteres, envio, especiales
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 09:44.