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

¿Que hay de malo en este UPDATE?

Estas en el tema de ¿Que hay de malo en este UPDATE? en el foro de Mysql en Foros del Web. ¡Hola! buenas tardes/dias/noches, me podrian ayudar a resolver un problema en este pequeño UPDATE?, al correr este query no salen errores como si hubiera funcionado, ...
  #1 (permalink)  
Antiguo 20/10/2010, 19:49
Avatar de itemc  
Fecha de Ingreso: septiembre-2009
Ubicación: mexico
Mensajes: 23
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta ¿Que hay de malo en este UPDATE?

¡Hola! buenas tardes/dias/noches, me podrian ayudar a resolver un problema en este pequeño UPDATE?, al correr este query no salen errores como si hubiera funcionado, sin ningún problema pero a la hora de revisar la tabla no ha sido actualizado nada, no insertó los valores será un error de sintaxis??

Query:

$sql1 = "UPDATE nombredelabase.nombredelatabla SET background_type = '".$background_type."',v_background_type = '".$yes."',v_background = 'no',v_cursor = '".$yes."',cursor = '".$cursor."',v_font = '".$yes."',font = '".$font."',v_font_color = '".$yes."',font_color = '".$font_color."',v_my_page = '".$yes."',my_page = '".$my_page."',show_clock = '".$show_clock."',show_my_page = '".$show_my_page."' WHERE users.username = '".$user."'";

mysql_query($sql1);

Muchas gracias por su ayuda.
  #2 (permalink)  
Antiguo 20/10/2010, 20:08
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: ¿Que hay de malo en este UPDATE?

depura la consulta
Código PHP:
Ver original
  1. mysql_query($sql1) or die (mysql_error());
y has una prueba imprime la variable $sql y ve que te muestra, copialo y pegalo en tu phpmyadmin o cliente que uses y ve si te actualiza
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 20/10/2010, 20:36
Avatar de itemc  
Fecha de Ingreso: septiembre-2009
Ubicación: mexico
Mensajes: 23
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: ¿Que hay de malo en este UPDATE?

OK me mando el siguiente error:

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 'cursor = 'cursors/19.cur',v_font = 'yes',font = 'chiller',v_font_color = 'yes',f' at line 1

creo que si era un sintax error pero cual crees que sea la solucion?
  #4 (permalink)  
Antiguo 20/10/2010, 20:56
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: ¿Que hay de malo en este UPDATE?

En realidad es un problema simple y recurrente. La mayoría de los programadores se olvida de él en algún momento cuando están manipulando un lenguaje embebido en otro: Tienes que tener cuidado de no estar usando palabras reservadas en el que estás embebiendo (SQL en este caso).

Así como no puedes usar echo, printf, if, then, new, and u or como nombres de objetos de algún tipo de PHP o C, tampoco puedes usar en el SQL ciertas palabras en el SQL porque esas palabras son sentencias, comandos u objetos de la base de datos, y el parser tomará su uso como un error de sintaxis.

Es el caso típico de que no puedes crear una tabla que se llame "TABLE"... En este, el problema es con la palabra CURSOR. Un cursor es un objeto que permite leer el resultado de una sentencia SELECT registro por registro, a través de ciclos iterativos. Como tal, se trata de un objeto de base de datos y no se puede usar fuera de ese contexto.

Aún así, el SQL te puede permitir usar estos nombres, pero sólo si van encerrados entre acentos inversos (`). Este símbolo le indica al parser que lo que está encerrado es una denominación de un objeto y no debe ser interpretado de otra forma.

Código MySQL:
Ver original
  1.   nombredelabase.nombredelatabla
  2.   SET `background_type` = '".$background_type."',
  3.   `v_background_type` = '".$yes."',
  4.   `v_background` = 'no',
  5.   `v_cursor` = '".$yes."',
  6.   `cursor` = '".$cursor."',
  7.   `v_font` = '".$yes."',
  8.   `font` = '".$font."',
  9.   `v_font_color` = '".$yes."',
  10.   `font_color` = '".$font_color."',
  11.   `v_my_page` = '".$yes."',
  12.   `my_page` = '".$my_page."',
  13.   `show_clock` = '".$show_clock."',
  14.   `show_my_page` = '".$show_my_page."'
  15. WHERE users.username = '".$user."';
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 20/10/2010, 21:25
Avatar de itemc  
Fecha de Ingreso: septiembre-2009
Ubicación: mexico
Mensajes: 23
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: ¿Que hay de malo en este UPDATE?

Muchas gracias me ha servido de maravilla su información, habia cosas que no habia tomado en cuenta, me sacaron de apuros Gracias de nuevo
  #6 (permalink)  
Antiguo 21/10/2010, 05:12
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: ¿Que hay de malo en este UPDATE?

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: malo, update
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 06:36.