Foros del Web » Programando para Internet » PHP »

Incompatibilidad en nombres de campo con ñ entre MySQL y PHP

Estas en el tema de Incompatibilidad en nombres de campo con ñ entre MySQL y PHP en el foro de PHP en Foros del Web. Saludos. Necesito ayuda con un problema que se ha presentado a última hora de una entrega y necesito resolverlo. En las tablas de la base ...
  #1 (permalink)  
Antiguo 16/09/2011, 04:01
Avatar de jorgelpadronb  
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 12 años, 8 meses
Puntos: 37
Incompatibilidad en nombres de campo con ñ entre MySQL y PHP

Saludos. Necesito ayuda con un problema que se ha presentado a última hora de una entrega y necesito resolverlo. En las tablas de la base de datos MySQL tengo nombres de campos con ñ. Cuando leo desde PHP los nombres de los campos me cambia la ñ por ?, con el consiguiente error al consultar un campo Contrase?a que en realidad es Contraseña en la base de datos. Recalco que el problema es con los nombres de campos, no con el contenido de las tablas. En mi servidor localhost de prueba no me da ese defecto, pero al subirlo al hosting me apareció ese problema. Alguien sabe como solucionarlo? Gracias
  #2 (permalink)  
Antiguo 16/09/2011, 04:18
Avatar de jesusbg  
Fecha de Ingreso: septiembre-2011
Ubicación: Santiago de Compostela
Mensajes: 41
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Incompatibilidad en nombres de campo con ñ entre MySQL y PHP

Buenos días:

Es culpa de la codificación, o de la página o de la base de datos. Puedes cambiarla o si no prueba con las funciones utf8_encode y utf8_decode. Debería funcionarte.

Saludos!

EDIT: Pensé que te referías al contenido del campo: supongo que es culpa de la codificación. De todos modos suelo evitar poner ñ en los nombres de campos

Última edición por jesusbg; 16/09/2011 a las 04:55 Razón: entendí mal
  #3 (permalink)  
Antiguo 16/09/2011, 08:10
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Incompatibilidad en nombres de campo con ñ entre MySQL y PHP

Cita:
Iniciado por jorgelpadronb Ver Mensaje
Saludos. Necesito ayuda con un problema que se ha presentado a última hora de una entrega y necesito resolverlo. En las tablas de la base de datos MySQL tengo nombres de campos con ñ. Cuando leo desde PHP los nombres de los campos me cambia la ñ por ?, con el consiguiente error al consultar un campo Contrase?a que en realidad es Contraseña en la base de datos. Recalco que el problema es con los nombres de campos, no con el contenido de las tablas. En mi servidor localhost de prueba no me da ese defecto, pero al subirlo al hosting me apareció ese problema. Alguien sabe como solucionarlo? Gracias
Si, no pongas caracteres especiales en los nombres de los campos. Solo usa caracteres alfanuméricos y el guión bajo.
  #4 (permalink)  
Antiguo 02/04/2012, 10:23
Avatar de kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años, 1 mes
Puntos: 65
Respuesta: Incompatibilidad en nombres de campo con ñ entre MySQL y PHP

Hola, precisamente llego a este post por el buscador ya que tenía un problema parecido, pero cambiando el cotejamiento de los campos en la base de datos y tablas, tanto en mi servidor local como en el de la web a utf8_spanish_ci ya me iba bien.

También tuve que añadirle en mi php: mysql_query("SET NAMES 'utf8'");
y en la codificación de la web <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Me salía todo correcto, pero leyendo ahora este post me pregunto si:

¿Entonces definitivamente en mysql si tengo campos como año, daños_reparaciones, etc etc en la base de datos ¿es mejor que los cambie a (ano, danos_reparaciones)?


Por otro lado si en mi php tengo ñ en los campos del formulario ¿es mejor que tambien cambie los id a sin "ñ" o cambiando solo el campo de la base de datos ya es suficiente?

Con ñ
-------
Código PHP:
Daños/reparaciones:<select id="daños-reparaciones" name="daños-reparaciones"
Código PHP:
danos_reparaciones='".$_POST["daños-reparaciones"]."' 

Sin ñ
------
Código PHP:
Daños/reparaciones:<select id="danos-reparaciones" name="danos-reparaciones"
Código PHP:
danos_reparaciones='".$_POST["danos-reparaciones"]."' 
Saludos.
  #5 (permalink)  
Antiguo 02/04/2012, 10:59
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Incompatibilidad en nombres de campo con ñ entre MySQL y PHP

Siempre es mas recomendable trabajar sin caracteres "especiales" tales como la ñ y las letras acentuadas ya que no sabes con que tipo de configuración te puedes topar en los servidores, si quieres evitarte dolores de cabeza no debes usar en ninguna circunstancia en el código, nombres de variables, de campos, etc tanto en PHP como en HTML
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #6 (permalink)  
Antiguo 02/04/2012, 11:07
Avatar de kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años, 1 mes
Puntos: 65
Respuesta: Incompatibilidad en nombres de campo con ñ entre MySQL y PHP

Ok Nemutagk.

Entonces me olvidaré totalmente de esas ñ, acentos etc etc

Gracias, un saludo

Etiquetas: incompatibilidad, mysql, nombres, tabla, campos
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:49.