Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Usar campo cuyo título es similar a una operación de MySQL

Estas en el tema de Usar campo cuyo título es similar a una operación de MySQL en el foro de Mysql en Foros del Web. Tengo una tabla con un campo Delete, y cada vez que quiero insertar/modificar un registro desde PHP me da error. Como puedo hacerlo sin cambiar ...
  #1 (permalink)  
Antiguo 26/01/2008, 06:21
 
Fecha de Ingreso: noviembre-2007
Mensajes: 36
Antigüedad: 16 años, 4 meses
Puntos: 0
Usar campo cuyo título es similar a una operación de MySQL

Tengo una tabla con un campo Delete, y cada vez que quiero insertar/modificar un registro desde PHP me da error. Como puedo hacerlo sin cambiar el nombre del campo? Hay alguna manera?.

Código PHP:
mysql_query("insert into user (Name,Password,Type,Delete) values ('$name','$pass','$type','$delete')",$conexion) or die ("Problemas en el insert".mysql_error()); 
resultado:

Cita:
Problemas en el insertYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Delete) values ('Mario','901f4c89673926234826577ed0943d2e','0','1 ')' at line 1
  #2 (permalink)  
Antiguo 26/01/2008, 10:26
 
Fecha de Ingreso: enero-2008
Mensajes: 197
Antigüedad: 16 años, 3 meses
Puntos: 10
Re: Usar campo cuyo título es similar a una operación de MySQL

mmmm es por eso que son "palabras reservadas" aquí y en cualquier otro lenguaje. Te recomiendo cambiar el nombre de tu campo.
  #3 (permalink)  
Antiguo 26/01/2008, 11:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: Usar campo cuyo título es similar a una operación de MySQL

Usa el acento agudo (`) para encerrar el nombre de los campos.
De todos modos, es mejor que NUNCA uses palabras reservadas.
  #4 (permalink)  
Antiguo 26/01/2008, 13:25
 
Fecha de Ingreso: noviembre-2007
Mensajes: 36
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Usar campo cuyo título es similar a una operación de MySQL

Usando el acento agudo si que funciona, gracias.

Normalmente no ponía ni comillas ni acentos en los nombres de campos, y comillas simples en los datos a insertar.
  #5 (permalink)  
Antiguo 26/01/2008, 15:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: Usar campo cuyo título es similar a una operación de MySQL

El acento agudo está reservado en MySQL precisamente para manipular nombres de campos en tablas que contengan caracteres reservados o palabras reservados. De esa forma, por ejemplo, podrías poner un espacio en un nombre, o lo dos puntos (:)
  #6 (permalink)  
Antiguo 16/10/2009, 20:20
 
Fecha de Ingreso: octubre-2009
Mensajes: 5
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Usar campo cuyo título es similar a una operación de MySQL

Yo tuve que usar unos campos con nombres “números” y la solución fue la misma, usar acento agudo
  #7 (permalink)  
Antiguo 17/10/2009, 08:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Usar campo cuyo título es similar a una operación de MySQL

Porque un número es una constante numérica, no es buena idea usar numeros como nombres de tablas porque dificulta mucho recordar sus denominaciones en la redacción de consultas (mnemotécnica).
Si no es por política de seguridad, no le veo practicidad.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 13:41.