Foros del Web » Programando para Internet » PHP »

PHP OO UPDATE SET : you have an error in your SQL syntax; check the manual that cor.

Estas en el tema de UPDATE SET : you have an error in your SQL syntax; check the manual that cor. en el foro de PHP en Foros del Web. Hola a todos, me pueden ayudar con este error: "you have an error in your SQL syntax; check the manual that corresponsd to your MYSQL ...
  #1 (permalink)  
Antiguo 27/05/2013, 16:58
 
Fecha de Ingreso: mayo-2013
Mensajes: 3
Antigüedad: 11 años, 6 meses
Puntos: 0
UPDATE SET : you have an error in your SQL syntax; check the manual that cor.

Hola a todos, me pueden ayudar con este error:

"you have an error in your SQL syntax; check the manual that corresponsd to your MYSQL server version for the right syntax to use ' set proceso estado=HECHA CON PODER at line 1"

Codigo

Código PHP:
if( $_REQUEST["estproc"]=="" or $_REQUEST["estjuzg"]=="" or  $_REQUEST["observaciones"]=="" or $_REQUEST["valor"]=="" or $_REQUEST["porcentaje"]=="" ){
    
                    cuadro_error("Debe llenar todos los campos");
        }else{
             
            //donde se llevan los datos a la BD
            
            
            $sql1 .="update set proceso ";
            $sql1 .="estado=".$_REQUEST["estproc"];
            $sql1 .="estadoj=".$_REQUEST["estjuzg"];
            $sql1 .="observaciones=".$_REQUEST["observaciones"];
            $sql1 .="valor=".$_REQUEST["valor"];
            $sql1 .="porcentaje=".$_REQUEST["porcentaje"];
            $sql1 .="select from proceso where nproceso =" .$_REQUEST["numbproceso"];
            
                    
            
            if(mysql_query($sql1))    {
                mensaje("Caso Actualizado Correctamente...");
                echo "<br><br><br><br><br>";
                ?>
                    <script type="text/javascript">
                    window.location = "../mod_casos/reg_prc.php";
                    </script>
                <?php
            
}else{
                
cuadro_error(mysql_error());//emite un mensaje de error de la BD sino se realizo la operacio
            
}
  #2 (permalink)  
Antiguo 27/05/2013, 16:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: UPDATE SET : you have an error in your SQL syntax; check the manual that c

Tu problema es bastante sencillo: lee una referencia de SQL primero y aprende su sintaxis antes de usarlo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 27/05/2013, 17:11
 
Fecha de Ingreso: mayo-2013
Mensajes: 3
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: UPDATE SET : you have an error in your SQL syntax; check the manual that c

pateketrueke

Que pena, no entendi lo que me quisiste decir
  #4 (permalink)  
Antiguo 27/05/2013, 18:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: UPDATE SET : you have an error in your SQL syntax; check the manual that c

A que para poder crear consultas en SQL dentro de un script PHP tienes que tener claras algunas cosas:
1) PHP no es SQL, y viceversa.
2) Cuando creas código SQL dentro de un script PHP, el código SQL resultante debe respetar la sintaxis y lógica del SQL.
3) Que no contenga errores sintácticos en PHP, no quiere decir que no estés metiendo la pata en SQL. Los analizadores de PHP no analizan el SQL.
4) Cada DBMS (motor de base de datos), tiene diferentes sintaxis en muchas cosas. La que usas para SQL Server no necesariamente sirve en Postgre, MySQL u Oracle.
5) Diseñar y administrar BBDD no es lo mismo que programar PHP. Son áreas diferentes.

Dicho esto, uno de los problemas es que no estás respetando tres condiciones que la sintaxis SQL requiere:
1) Las cadenas de texto van entre apóstrofos ('), por tanto cualquier valor en una variable que sea cadena de texto, debe quedar encerrada así en la query una vez creada.
2) Los números van sin apostrofos, y los decimales usan punto decimal, y no coma.
3) Las fechas se colocan entre apóstrofos, respetndo el formato de cada DBMS.

En tu caso tienes al menos cinco errores:
1) No estás indicando qué tabla estás actualizando, o no lo estás haciendo correctamente.
2) Estás poniendo las cadenas de texto sin apostrofos, por lo que el DBMS las tomará como nombres de campos, y al no encontrarlos se generarán errores.
3) Estás colocando un UPDATE pegado a un SELECT, siendo que un SELECT no es parte del UPDATE, y síolo peude ser usado con el si es una subconsulta para una validación en el WHERE, que no es el caso.
4) Como no dejas espacios entre el final de un campo y el comienzo del otro, el valor de la variable se está pegando al siguiente campo, generando errores de sintaxis.
5) No estás poniendo el separador de campos modificados (la coma), y eso generará errores de sintaxis.
Código PHP:
Ver original
  1. $sql1 .="UPDATE proceso SET ";
  2. $sql1 .=" estado= '".$_REQUEST["estproc"]."', ";
  3. $sql1 .=" estadoj= '".$_REQUEST["estjuzg"]."', ";
  4. $sql1 .=" observaciones= '".$_REQUEST["observaciones"]."', ";
  5. $sql1 .=" valor= '".$_REQUEST["valor"]."', ";
  6. $sql1 .=" porcentaje= '".$_REQUEST["porcentaje"];
  7. $sql1 .=" WHERE nproceso =" .$_REQUEST["numbproceso"];

Por otro lado, como no se ve que estés controlando el tipo de caracteres que tienen las variables de cadena, puedes estar metiendo caracteres que rompan la sintaxis. Eso ya es un defecto de programación, no de SQL, pero tiene sus consecuencias en la consulta.
__________________
¿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 27/05/2013, 18:51
 
Fecha de Ingreso: mayo-2013
Mensajes: 3
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: UPDATE SET : you have an error in your SQL syntax; check the manual that c

OK, gracias, voy a validar. Y les cuento.

Etiquetas: manual, mysql, select, set, sql, syntax, 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 05:21.