Ver Mensaje Individual
  #15 (permalink)  
Antiguo 18/06/2013, 13:57
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: que hago cuando lo que inserto es una palabra reservada?

Hola de nuevo

Es más probable que el problema se debiera a la comilla simple en Father's y no a la palabra DAY..., depende mucho de cómo haces la consulta... en MySQL, la comilla simple sirve como sabrás, para delimitar cadenas, por lo tanto, si quieres incluir una comilla en una cadena debe "matar" dicha comilla, poniendo dos comillas simples, es decir, algo como esto:

Código MySQL:
Ver original
  1. mysql> select 'Fathet''s day';
  2. +--------------+
  3. | Fathet's day |
  4. +--------------+
  5. | Fathet's day |
  6. +--------------+
  7. 1 row in set (0.00 sec)

Lo mismo pasa con los inserts... si quieres insertar una cadena que contenga comillas en un campo, tendrías que hacerlo así:

Código MySQL:
Ver original
  1. mysql> INSERT INTO tabla VALUES (4, 'Father''s Day');
  2. Query OK, 1 row affected (0.22 sec)
  3.  
  4. mysql> SELECT * FROM tabla;
  5. +------+--------------+
  6. | id   | campo        |
  7. +------+--------------+
  8. |    1 | DAY          |
  9. |    2 | DATE         |
  10. |    3 | INSERT       |
  11. |    4 | Father's Day |
  12. +------+--------------+
  13. 4 rows in set (0.00 sec)

Si lo haces sin poner las dos comillas (no confundir con la comilla doble (")) obtendrías el mensaje de error que mencionas:

Código MySQL:
Ver original
  1. mysql> INSERT INTO tabla VALUES (4, 'Father's Day');    '> ';
  2. ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's Day
  3. ' at line 1

Ojo con eso.

Saludos
Leo.