Foros del Web » Programando para Internet » PHP »

Error de sintaxis MYSQL en update

Estas en el tema de Error de sintaxis MYSQL en update en el foro de PHP en Foros del Web. Tengo un formulario y otro archivo (buscaoperador.php) que actualiza los datos ingresados en el formulario dentro de la tabla t_operador. Cuando lo corro no me ...
  #1 (permalink)  
Antiguo 14/10/2003, 03:33
Avatar de alelita1980  
Fecha de Ingreso: octubre-2003
Ubicación: Buenos Aires
Mensajes: 25
Antigüedad: 14 años, 2 meses
Puntos: 0
Pregunta Error de sintaxis MYSQL en update

Tengo un formulario y otro archivo (buscaoperador.php) que actualiza los datos ingresados en el formulario dentro de la tabla t_operador. Cuando lo corro no me aparece ningún error pero tampoco hace el update. El código de buscaoperador.php es:

<?php
include("conectar2.php");
$Sql = "UPDATE t_operador SET Op_Nombre='$Op_Nombre',
Op_Clave='$Op_Clave', Op_Apellido='$Op_Apellido', Op_Categoria='$Op_Categoria',
Op_NombreUs='$Op_NombreUs' WHERE Op_Id='$Op_Id'";
mysql_query($Sql,$conn);
header("Location: principal.php");
?>

(En conectar2.php está la conexion a la base y funciona correctamente.)
(Op_Nombre es el nombre del campo en la tabla y '$Op_Nombre' es la variable traida del formulario, esto es igual para todos los campos).
Intenté con la funcion die mysql_error y me dió como resultado un error de sintaxis marcando un ' de más.
No le encuentro la solucion alguien puede darme un dato??
Graciasssssssss
Aleli

Última edición por alelita1980; 14/10/2003 a las 03:34
  #2 (permalink)  
Antiguo 14/10/2003, 03:44
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

¿Seguro que te dijo un ' de mas? ¿O ponia algo parecido a ".. near '"? De todas formas, ¿hiciste un echo $Sql para ver la consulta que realmente se ejecutaba?

Es que realmente me parece que la sintaxis esta bien. A no ser que al sustituir las variables por sus valores se rompa la sintaxis. ¿No estaras intentando meter valores con el caracter '? Porque para meter esos valores primero tendrias que escapar le valor con addslashes() (www.php.net/addslashes).

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 14/10/2003, 03:50
Avatar de alelita1980  
Fecha de Ingreso: octubre-2003
Ubicación: Buenos Aires
Mensajes: 25
Antigüedad: 14 años, 2 meses
Puntos: 0
Si, el error decia near y me lo tiraba en los ultimos 3 campos que intento actualizar, por ejemplo: si el orden de los campos en el update es Op_Nombre, Op_Clave, Op_Apellido, Op_Categoria, Op_NombreUs, Op_Id; el error solo es en los ultimos 3 (Op_Categoria, Op_NombreUus y Op_Id) y los demas campos los ignora en el echo del error. Se entiende?
Gracias
  #4 (permalink)  
Antiguo 14/10/2003, 03:52
Avatar de alelita1980  
Fecha de Ingreso: octubre-2003
Ubicación: Buenos Aires
Mensajes: 25
Antigüedad: 14 años, 2 meses
Puntos: 0
ahh! y los valores que inserto no son '
gracias de vuelta :)
  #5 (permalink)  
Antiguo 14/10/2003, 04:05
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Haz un
Código PHP:
echo $Sql
Asi veras exactamente la consulta SQL que se intenta ejecutar. Puede que algun valor no se haya pasado bien.

Y si puedes probar la consulta que te muestra en un frontend de mysql tipo phpmyadmin, mejor.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 14/10/2003, 04:21
Avatar de alelita1980  
Fecha de Ingreso: octubre-2003
Ubicación: Buenos Aires
Mensajes: 25
Antigüedad: 14 años, 2 meses
Puntos: 0
el resultado de hacer echo $Sql es: 1
El codigo fue este:
<?php
$conn = mysql_connect("localhost","ale","ale");
mysql_select_db("Rcc",$conn);
$Sql = mysql_query("UPDATE t_operador SET Op_Id='$Op_Id', Op_NombreUs='$Op_NombreUs', Op_Clave='$Op_Contrasena', Op_Categoria='$Op_Categoria', Op_Nombre='$Op_Nombre', Op_Apellido='$Op_Apellido' WHERE Op_Id='Op_Id'",$conn);
echo $Sql;
?>
Que puede ser???
  #7 (permalink)  
Antiguo 14/10/2003, 04:27
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Has cambiado el codigo. Yo me referia a que hicieses un echo de la cadena con la consulta que pasabas a mysql_query().
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #8 (permalink)  
Antiguo 14/10/2003, 04:46
Avatar de alelita1980  
Fecha de Ingreso: octubre-2003
Ubicación: Buenos Aires
Mensajes: 25
Antigüedad: 14 años, 2 meses
Puntos: 0
el echo de $Sql es: UPDATE t_operador SET Op_Id='1', Op_NombreUs='aleluya', Op_Clave='111', Op_Categoria='Op', Op_Nombre='Alejandrita', Op_Apellido='Husson' WHERE Op_Id='Op_Id'

y el codigo que utilicé para esto es:
<?php
$conn = mysql_connect("localhost","ale","ale");
mysql_select_db("Rcc",$conn);
$Sql = "UPDATE t_operador SET Op_Id='$Op_Id', Op_NombreUs='$Op_NombreUs', Op_Clave='$Op_Contrasena', Op_Categoria='$Op_Categoria', Op_Nombre='$Op_Nombre', Op_Apellido='$Op_Apellido' WHERE Op_Id='$Op_Id'";
echo $Sql;
?>
  #9 (permalink)  
Antiguo 14/10/2003, 04:59
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
¿Y esa consulta es correcta? Porque a mi me mosquea ese OP_ld='OP_ld' final. ¿De que tipo son los campos?
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #10 (permalink)  
Antiguo 14/10/2003, 05:18
Avatar de alelita1980  
Fecha de Ingreso: octubre-2003
Ubicación: Buenos Aires
Mensajes: 25
Antigüedad: 14 años, 2 meses
Puntos: 0
Gracias josemi, ya lo solucioné! Me faltaba el $ en el ultimo Op_Id, y ademas probé haciendo $result = mysql_query($Sql, $conn); y funcionó. Este es el codigo:
<?php
$conn = mysql_connect("localhost","ale","ale");
mysql_select_db("Rcc",$conn);
$Sql = "UPDATE t_operador SET Op_Id='$Op_Id', Op_NombreUs='$Op_NombreUs', Op_Clave='$Op_Contrasena', Op_Categoria='$Op_Categoria', Op_Nombre='$Op_Nombre', Op_Apellido='$Op_Apellido' WHERE Op_Id='Op_Id'";
echo $Sql;
?>
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 18:46.