Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/06/2013, 07:40
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 fakieboris:

La consulta no tiene nada de raro, es decir, al colocar el valor entre comillas simples (') estás indicando que se trata de una cadena, por lo tanto, si tu campo es de tipo CARACTER, entonces de debería permitir actualizar el registro, independientemente de que se trate o no de una palabra reservada, checa este script:

Código MySQL:
Ver original
  1. mysql> CREATE TABLE tabla (id INT, campo VARCHAR(20));
  2. Query OK, 0 rows affected (0.06 sec)
  3.  
  4. mysql> INSERT INTO tabla VALUES (1, 'DIA'), (2, 'FECHA'), (3, 'INSERTAR');
  5. Query OK, 3 rows affected (0.05 sec)
  6. Records: 3  Duplicates: 0  Warnings: 0
  7.  
  8. mysql> SELECT * FROM tabla;
  9. +------+----------+
  10. | id   | campo    |
  11. +------+----------+
  12. |    1 | DIA      |
  13. |    2 | FECHA    |
  14. |    3 | INSERTAR |
  15. +------+----------+
  16. 3 rows in set (0.00 sec)
  17.  
  18. mysql> UPDATE tabla SET campo = 'DAY' WHERE id = 1;
  19. Query OK, 1 row affected (0.03 sec)
  20. Rows matched: 1  Changed: 1  Warnings: 0
  21.  
  22. mysql> UPDATE tabla SET campo = 'DATE' WHERE id = 2;
  23. Query OK, 1 row affected (0.03 sec)
  24. Rows matched: 1  Changed: 1  Warnings: 0
  25.  
  26. mysql> UPDATE tabla SET campo = 'INSERT' WHERE id = 3;
  27. Query OK, 1 row affected (0.01 sec)
  28. Rows matched: 1  Changed: 1  Warnings: 0
  29.  
  30. mysql> SELECT * FROM tabla;
  31. +------+--------+
  32. | id   | campo  |
  33. +------+--------+
  34. |    1 | DAY    |
  35. |    2 | DATE   |
  36. |    3 | INSERT |
  37. +------+--------+
  38. 3 rows in set (0.00 sec)

Observa que las tres palabras que actualizo (DAY, DATE, INSERT) son palabras reservadas, pero NO HAY NINGÚN PROBLEMA AL ACTUALIZAR EL REGISTRO.

Verifica qué es exactamente lo que estás tratando de ejecutar, un error típico que tienen nos programadores en PHP es obviar los valores de los parámetros, es posible que alguno de estos venga vacío. Verifica este detalle y si continuas con problemas postea la estructura de tu tabla con

Código MySQL:
Ver original 

Ahora bien, otro problema que si puede presentarse con las palabras reservadas es por ejemplo cuando utilizas estas palabras como NOMBRES DE CAMPOS, en este caso lo que tienes que hacer es manejar estos nombres entre acentos graves (`) es decir, tener algo como esto

Código MySQL:
Ver original
  1. UPDATE tabla SET `update` = 'algo';

Observa que aquí estoy suponiendo tener un campo que se llama UPDATE... lo cual es un problema.

Saludos
Leo.