Foros del Web » Programando para Internet » PHP »

Error sentencia UPDATE mysql

Estas en el tema de Error sentencia UPDATE mysql en el foro de PHP en Foros del Web. Hola, sabrian decirme que hay de malo en este codigo: Código PHP: $editar =  mysql_query ( "UPDATE usuario SET contrasena= {$_POST['contrasena']}, correo= {$_POST['correo']}                               , ubicacion= {$_POST['ubicacion']}, cfg_estilo= {$_POST['estilo']}                                                     WHERE id= {$_COOKIE['juego_jugador_id']}" );  Me devuelve el siguiente error: ...
  #1 (permalink)  
Antiguo 04/08/2007, 12:54
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Mensaje Error sentencia UPDATE mysql

Hola, sabrian decirme que hay de malo en este codigo:
Código PHP:
$editarmysql_query("UPDATE usuario SET contrasena= {$_POST['contrasena']}, correo= {$_POST['correo']}
                              , ubicacion= {$_POST['ubicacion']}, cfg_estilo= {$_POST['estilo']}
                                                    WHERE id= {$_COOKIE['juego_jugador_id']}"
); 
Me devuelve el siguiente error:
Código:
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 '@hotmail.com , ubicacion= Valencia, España, cfg_estilo=' at line 1
Gracias y saludos!
  #2 (permalink)  
Antiguo 04/08/2007, 13:15
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Error sentencia UPDATE mysql

Hola astut pues te falta comillas en los valores:
Código PHP:
$editarmysql_query("UPDATE usuario SET contrasena='".$_POST['contrasena']."', correo='".$_POST['correo']."', ubicacion='".$_POST['ubicacion']."', cfg_estilo='".$_POST['estilo']."' WHERE id=".$_COOKIE['juego_jugador_id']); 
Saludos
__________________

  #3 (permalink)  
Antiguo 04/08/2007, 13:57
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Error sentencia UPDATE mysql

La forma en que puse las variables no tiene que ver, ya que comprobe de varias formas, saludos!

Última edición por astut; 04/08/2007 a las 14:14
  #4 (permalink)  
Antiguo 04/08/2007, 14:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Error sentencia UPDATE mysql

Se refiere a que te faltan las comillas en actualizar tus valores:
Esto te da el error:
Código:
UPDATE tabla SET valor1=un valor
Esto no te da error:
Código:
UPDATE tabla SET valor1='un valor'
Saludos.
  #5 (permalink)  
Antiguo 04/08/2007, 14:35
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Error sentencia UPDATE mysql

Se hace de esta forma verdad?:
Código PHP:
contrasena'{$_POST[contrasena]}' 
Los corchetes van dentro, ¿de esta forma ahorro consumo?

saludos
  #6 (permalink)  
Antiguo 04/08/2007, 15:02
Avatar de vb2005  
Fecha de Ingreso: noviembre-2005
Ubicación: Paderborn - Alemania
Mensajes: 566
Antigüedad: 18 años, 5 meses
Puntos: 24
Re: Error sentencia UPDATE mysql

no, se hace como teb dijeron arriba los {} no sirven de nada
  #7 (permalink)  
Antiguo 04/08/2007, 15:25
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Error sentencia UPDATE mysql

Estas seguro de lo que dices?, en un post me respondieron que use los {}... alguien sabe mas? saludos
  #8 (permalink)  
Antiguo 04/08/2007, 15:55
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 9 meses
Puntos: 105
Re: Error sentencia UPDATE mysql

Holas,

Estan bien como te mencionan astut, ademas es sin el {}.

;)

Saludos
Gildus
__________________
.: Gildus :.
  #9 (permalink)  
Antiguo 04/08/2007, 18:40
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Error sentencia UPDATE mysql

de veras?

Yo lo hago de la forma:
Código PHP:
nombre'$_POST[estilo]' 
¿Acaso es malo hacerlo asi?, saludos!
Y porque los {} no sirven para nada, ¿para que sirven?

Última edición por astut; 05/08/2007 a las 03:59
  #10 (permalink)  
Antiguo 05/08/2007, 13:18
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Error sentencia UPDATE mysql

Pues es valida esa forma que utilizas pero vale aclarar que tienes q usarlos dentro de las comillas dobles:
Código PHP:
$editarmysql_query("UPDATE usuario SET contrasena='$_POST[contrasena]', correo='$_POST[correo]', ubicacion='$_POST[ubicacion]', cfg_estilo='$_POST[estilo]' WHERE id=$_COOKIE[juego_jugador_id]"); 
y con respecto a {} pues lo que se, es que se utilizan en variables variables.

Saludos
__________________

  #11 (permalink)  
Antiguo 06/08/2007, 18:56
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 9 meses
Puntos: 105
Re: Error sentencia UPDATE mysql

Holas,

si usas de la forma:

Cita:
$editar= mysql_query("UPDATE usuario SET contrasena='$_POST[contrasena]', correo='$_POST[correo]', ubicacion='$_POST[ubicacion]', cfg_estilo='$_POST[estilo]' WHERE id=$_COOKIE[juego_jugador_id]");


Esta mal porque el PHP no lo interpreta el valor de la variable $_POST[contrasena], por ejemplo, tienes que separar lo que es variable o lo que es valor de una variable. Ademas si usas $_POT[contrasena] te dira el PHP que no se reconoce la variable contrasena, tiene q ser: $_POT['contrasena'] .

Trata de usar comillas simples es mas rapido que las comillas dobles, haces buscar al PHP dentro de las comillas dobles si hay ono una variable, y eso hay que ayudarle al php.

Ahora los {} (corchetes) claro que sirven pero no para lo que quieres hacer.


Saludos
Gildus
__________________
.: Gildus :.
  #12 (permalink)  
Antiguo 07/08/2007, 03:50
 
Fecha de Ingreso: julio-2004
Mensajes: 117
Antigüedad: 19 años, 10 meses
Puntos: 0
Re: Error sentencia UPDATE mysql

Yo no me liaría y sacaría cada $_POST a una variable. Luego metería las variables con las comillas como te dicen arriba: Algo así...
Código PHP:
$contrasena=$_POST['contrasena'];
$correo=$_POST['correo'];
.
.
.

$editarmysql_query("UPDATE usuario SET contrasena='$contrasena', correo='$correo' ............ y así sucesivamente 
evitas problemas, además me parece una forma de programar más elegante y clara.

Espero que te sirva de ayuda
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 03:23.