Foros del Web » Programando para Internet » PHP »

como guardar caracteres especiales en BD

Estas en el tema de como guardar caracteres especiales en BD en el foro de PHP en Foros del Web. hola amigos tengo una duda de como como guardar caracteres especiales en una base de datos Pongo un ejemplo para intentar explicar mi pregunta: -Para ...
  #1 (permalink)  
Antiguo 04/04/2012, 03:14
 
Fecha de Ingreso: septiembre-2011
Ubicación: España
Mensajes: 118
Antigüedad: 7 años
Puntos: 0
como guardar caracteres especiales en BD

hola amigos tengo una duda de como como guardar caracteres especiales en una base de datos

Pongo un ejemplo para intentar explicar mi pregunta:

-Para poner 'coruña' en mi pagina web y la gente vea bien la 'ñ' tendre q poner (echo "coruña";)
-Mi pregunta es: de q forma puedo guardar coruña en mi BD (coruña o asi coruña)

Ya q si guardo coruña asi (coruña) despues al hacer la consulta tb mostrara 'coruña' y no coruña
Y si guardo coruña asi (coruña) despues como la 'ñ' es un caracter especial nolo mostrara bien



Tengo un lio con eso haber si alguien me puede ayudar, gracias
  #2 (permalink)  
Antiguo 04/04/2012, 05:28
 
Fecha de Ingreso: septiembre-2008
Ubicación: Xirivella,Valencia
Mensajes: 112
Antigüedad: 10 años
Puntos: 13
Respuesta: como guardar caracteres especiales en BD

hola Diego,
yo uso un script que antes de introducir cualquier texto en la bd cambia cualquier caracter especial por su equivalente, después al extaer el texto de la bd ya sale de manera correcta.

Osea en mi bd pone:
| Blasco Ibañez,8-6 | Quart de poblet
| Tres Forques,54-13 | Valencia

y en mi pagina pone:

DATOS DEL CLIENTE
NOMBRE
Antonia
DIRECCIÓ
Blasco Ibañez,8-6
  #3 (permalink)  
Antiguo 04/04/2012, 05:47
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 9 años, 8 meses
Puntos: 89
Respuesta: como guardar caracteres especiales en BD

Antes de insertar en tu DB:
Código PHP:
Ver original
  1. $apellido=htmlentities("coruña");
  2.  
  3. //INSERT
  4.  
  5. //SELECT
  6.  
  7. echo $row['apellido'];// $row['apellido'] = "coruña"
  8.  // y tu navegador lo interpretara automaticamente.
  9. // y si no lo hace:
  10. echo utf8_encode($row['apellido']);
__________________
Mono programando!
google.com/+MarianoEgui
twitter.com/eguimariano
  #4 (permalink)  
Antiguo 04/04/2012, 06:23
Avatar de odiseus  
Fecha de Ingreso: enero-2011
Mensajes: 109
Antigüedad: 7 años, 9 meses
Puntos: 3
Respuesta: como guardar caracteres especiales en BD

Yo, personalmente guardaría los caracteres especiales en la base de datos, porque al guardar sus equivalentes en html, en caso de hacer búsquedas desde web (por poner un ejemplo) tendrás que tratarlas antes para que busque las eñes y similares... vamos, que guardando los caracteres especiales como html solo traerá problemas a la larga ya que tendrás que tratar muchas cosas.

Si se muestran mal los caracteres en la web es por problema de codificación. Para estos casos lo mejor es usar siempre la codificación UTF-8, tanto en tus campos de base de datos, en tus ficheros físicos e indicarlo en el html de tu página para que el navegador interprete correctamente los caracteres.
__________________
--------
Unelink - Servidores virtuales (VPS), servidores dedicados, hosting, dominios.
Blog de unelink
  #5 (permalink)  
Antiguo 04/04/2012, 10:27
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 9 años, 1 mes
Puntos: 44
Respuesta: como guardar caracteres especiales en BD

ya intentaste poniendo antes de tu query esta linea


Código PHP:
Ver original
  1. mysql_query("SET NAMES utf8");


yo asi obtengo lo caracteres correctos y como dice odiseus es preferible que los guardes en la bd y no sus equivalentes
  #6 (permalink)  
Antiguo 04/04/2012, 12:36
 
Fecha de Ingreso: septiembre-2011
Ubicación: España
Mensajes: 118
Antigüedad: 7 años
Puntos: 0
Respuesta: como guardar caracteres especiales en BD

muchas gracias a todos por vuestras repuestas, la q mas o menos estaba buscando es lo q dice 'odiseus' mis problemas tambien vienen despues al hacer consultas a la BD

Haber entonces si solvento el porblema con la codificacion UTF-8
Ya tengo en BD la codificacion UTF-8, pero a que te refieres con: ...e indicarlo en el html de tu página para que el navegador interprete correctamente los caracteres.


p414 esa linea q me pasas viene siendo lo mismo q cuando eliges en la BD la codificacion, no
o que viene siendo (que no se para que es), gracias

gracias a todos por vuestro tiempo
  #7 (permalink)  
Antiguo 04/04/2012, 15:43
Avatar de unreal4u  
Fecha de Ingreso: octubre-2008
Mensajes: 72
Antigüedad: 10 años
Puntos: 10
Respuesta: como guardar caracteres especiales en BD

no, una cosa es que lo guardes como UTF-8 en la base de datos y otra cosa es que te comuniques en UTF-8 con la base de datos.

También los documentos (php, html, tpl, phtml, po, mo, etc) es bueno guardarlo en UTF-8, y por supuesto al navegador tb hay que decirle que vamos a trabajar con UTF-8, enviando esta cabecera debería ser suficiente para informarle de que vas a trabajar en UTF-8:

Código PHP:
header('Content-type: text/html; charset=UTF-8'); 
Son muchas cosas, pero por lo mismo es bueno trabajar siempre con un IDE y con ciertas reglas para que no tengas este tipo de problemas.

Saludos.
  #8 (permalink)  
Antiguo 04/04/2012, 16:02
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 9 años, 3 meses
Puntos: 641
Respuesta: como guardar caracteres especiales en BD

si los caracteres vienen de otra pagina, podrias usar utf8_decode() y utf8_encode()
  #9 (permalink)  
Antiguo 05/04/2012, 00:22
 
Fecha de Ingreso: septiembre-2011
Ubicación: España
Mensajes: 118
Antigüedad: 7 años
Puntos: 0
Respuesta: como guardar caracteres especiales en BD

unreal4u muchas gracias estube mirando asi y de momento va bien la cosa

memoadian tu respuest tb es muy interesante esta bien saberlo ya q me puede hacer faltal un dia


gracia a todos, saludos
  #10 (permalink)  
Antiguo 09/04/2012, 11:46
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 9 años, 1 mes
Puntos: 44
Respuesta: como guardar caracteres especiales en BD

yo ocupo esa linea para enviar y recibir mis consultas en utf8 sin importar que codificacion tiene el documento, me sirve y te recomiendo que la uses (aunque solo hagas pruebas con ella) y veràs que funcionalidad tiene

saludos
  #11 (permalink)  
Antiguo 09/04/2012, 14:30
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 6 años, 11 meses
Puntos: 67
Respuesta: como guardar caracteres especiales en BD

Revisa tambien tu base de datos y la codificación que usas
  #12 (permalink)  
Antiguo 10/04/2012, 15:58
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 9 años, 1 mes
Puntos: 44
Respuesta: como guardar caracteres especiales en BD

zalito12 tiene razón revisa bien, porque si todo está igual no deberías tener problema alguno

saludos!

Etiquetas: bd, caracteres, 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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:41.