Foros del Web » Programando para Internet » PHP »

...error in your SQL syntax... :'(

Estas en el tema de ...error in your SQL syntax... :'( en el foro de PHP en Foros del Web. Al ejecutar un script que inserta unos datos a la DB me sale este error You have an error in your SQL syntax. Check the ...
  #1 (permalink)  
Antiguo 28/01/2005, 01:11
 
Fecha de Ingreso: enero-2004
Mensajes: 431
Antigüedad: 20 años, 10 meses
Puntos: 6
...error in your SQL syntax... :'(

Al ejecutar un script que inserta unos datos a la DB me sale este 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 'desc,tel,ext1,usuario) VALUES ('NISSAN','Altima','1456','44444'

el codigo del formulario es este
Código HTML:
<FORM method="post" action="publicar.php" enctype="multipart/form-data">
Marca<input type="text" name="marca"><br>Modelo:<input type="text" name="modelo"><br>Año<input type="text" name="ano"><br>Precio<input type="text" name="precio"><br>Moneda:<input type="text" name="moneda">Desc.<textarea name="desc"></textarea><br><input type="text" name="tel"><br>imagen:<input type="file" name="img1" size="20"><br><input type="submit" value="publicar"> 
y el archivo publicar.php es este:
Código PHP:
<?
include("ident.php");//este komprueba ke esten registrados y logueados
if($loginCorrecto) {
include(
"conex.php");//konexion kon MYSQL
include("inc/func.inc");//ALGUNAS FUNCIONES DE SEGURIDAD COMO quitar()
$ext=$_FILES['img1']['type'];  
$img_temp=$_FILES['img1']['tmp_name']; 
$img1 addslashes(fread(fopen($img_temp"rb"), filesize($img_temp))); 
if(
$ext == "image/pjpeg") {
    
$ext1 "jpg";

if(
$ext == "image/gif") {
    
$ext1="gif";

if(
$ext1 == "") {
    
?>
<SCRIPT LANGUAGE="JavaScript">
<!--
alert('El formato de la imagen no es correcto asegurese de que sea JPG o GIF');
history.go(-1);
//-->
</SCRIPT>
<?
        
exit;
    } 
$sql "INSERT INTO anuncios (marca,modelo,ano,precio,moneda,img1,desc,tel,ext1,usuario) VALUES ('".quitar($_POST["marca"])."','".quitar($_POST["modelo"])."','".quitar($_POST["ano"])."','".quitar($_POST["precio"])."','".quitar($_POST["moneda"])."',".$img1.",'".quitar($_POST["desc"])."','".quitar($_POST["tel"])."','".$ext1."','".$_COOKIE["ususuario"]."')"
mysql_query($sql) or die(mysql_error());

?>
<SCRIPT LANGUAGE="JavaScript">
<!--
alert('Su anuncio ha sido publicado exitosamente.\nLe deseamos buena suerte con su venta.\nNo olvide que al venderse su carro debera entrar a su cuenta y borrar el anuncio de lo contrario el anuncio permanecera ahi y sus datos estaran disponibles para todos.\n');
location.href="index.php";
//-->
</SCRIPT>
<?
} else { 
    
?>
        <p align="center"><b><font face="Verdana" size="1">Esta area es solo para 
usuarios registrados.</font></b></p><center><form method="post" action="ingresar.php">
<table border="0" width="346" height="79">
    <tr>
        <td height="23" width="95" align="right"><font face="Verdana" size="1">
        Usuario:</font></td>
        <td height="23" width="240"><input type="text" name="usuario" size="20" class="txt"></td>
    </tr>
    <tr>
        <td height="23" width="95" align="right"><font face="Verdana" size="1">
        Contraseña:</font></td>
        <td height="23" width="240">
        <input type="password" name="password" size="20" class="txt"></td>
    </tr>
    <tr>
        <td height="23" width="96">&nbsp;</td>
        <td height="23" width="240">
        <input type="submit" value="Login" name="submit" class="boton"></td>
    </tr>
</table>
<p style="margin-top: 0; margin-bottom: 0"><font face="Verdana" size="1">
<a href="index.php?modo=recuperarpass">¿Contraseña perdida?</a></font></p>
<p style="margin-top: 0; margin-bottom: 0">&nbsp;</p>
<p style="margin-top: 0; margin-bottom: 0"><font face="Verdana" size="1">
<a href="index.php?modo=registro">Si no estas registrado haz click aqui para 
registrarte GRATUITAMENTE</a></font></p>
</form>
</center>
<?
}
    
?>
pero al tratar de publicar algo me tira el 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 'desc,tel,ext1,usuario) VALUES ('NISSAN','Altima','1456','44444'


Alguna idea??


Saludos
__________________
El que teme preguntar, se averguenza de aprender.

Última edición por kez0; 21/10/2007 a las 13:45
  #2 (permalink)  
Antiguo 28/01/2005, 01:35
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Si te dice que hay problema de la sintaxis de SQL... creo hubiera bastado con poner solo esa parte... sin ánimo de ofender, solo como sugerencia para ayudarte mejor... luego resulta tedioso ver tanta cosa que mejor lo pasamos por alto...

Viendo solo la parte de tu query... parece que te faltaban unas comillas por ahí....

Código PHP:
$sql "INSERT INTO anuncios (marca,modelo,ano,precio,moneda,img1,desc,tel,ext1,usuario) VALUES ('".quitar($_POST['marca'])."','".quitar($_POST['modelo'])."','".quitar($_POST['ano'])."','".quitar($_POST['precio'])."','".quitar($_POST['moneda'])."','".$img1."','".quitar($_POST['desc'])."','".quitar($_POST['tel'])."','".$ext1."','".$_COOKIE['ususuario']."')"
prueba... y como sugerencia.. no te lies tanto!!! no hubiese sido más fácil poner algo así:

Código PHP:
$var1=funcion($_POST['var1']);
$var2=funcion($_......);
//para después... 
query=.... VALUES '$var1''$var2',...); 
... para mejor entendimiento de lo que haces... sería más fácil localizar errores. Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 28/01/2005 a las 01:36
  #3 (permalink)  
Antiguo 28/01/2005, 01:45
 
Fecha de Ingreso: enero-2004
Mensajes: 431
Antigüedad: 20 años, 10 meses
Puntos: 6
segui tu consejo y me sigue dando el mismo error:
Código PHP:
$marca quitar($_POST["marca"]);
$modelo quitar($_POST["modelo"]);
$año quitar($_POST["ano"]);
$precio quitar($_POST["precio"]);
$moneda quitar($_POST["moneda"]);
$desc quitar($_POST["desc"]);
$tel quitar($_POST["tel"]);
$usr $_COOKIE["ususuario"];


$sql "INSERT INTO anuncios (marca,modelo,ano,precio,moneda,img1,desc,tel,ext1,usuario) VALUES ('$marca','$modelo','$año','$precio','$moneda','$desc','$tel','$usr')"
__________________
El que teme preguntar, se averguenza de aprender.

Última edición por kez0; 28/01/2005 a las 01:50
  #4 (permalink)  
Antiguo 28/01/2005, 01:54
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
... tu relación es 10 a 8.... insertas 8 datos en 10 campos... ojo!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 28/01/2005, 02:05
 
Fecha de Ingreso: enero-2004
Mensajes: 431
Antigüedad: 20 años, 10 meses
Puntos: 6
jejejeje si no me di cuenta ya lo he corregido
Código PHP:
$marca quitar($_POST["marca"]);
$modelo quitar($_POST["modelo"]);
$año quitar($_POST["ano"]);
$precio quitar($_POST["precio"]);
$moneda quitar($_POST["moneda"]);
$desc quitar($_POST["desc"]);
$tel quitar($_POST["tel"]);
$usr $_COOKIE["ususuario"];


$sql "INSERT INTO anuncios (marca,modelo,ano,precio,moneda,img1,desc,tel,ext1,usuario) VALUES ('$marca','$modelo','$año','$precio','$moneda','$img1','$desc','$tel','$ext1','$usr')"
mysql_query($sql) or die(mysql_error()); 
las variblaes $ext1 y $img1 pueden ver ke se deklaran en el script que puse primero esto solo es la parte que al parecer da problemas.


pero el error SIGUE


kreo ke si todo esto es un error muy tonto me dare un tiro
__________________
El que teme preguntar, se averguenza de aprender.

Última edición por kez0; 28/01/2005 a las 02:06
  #6 (permalink)  
Antiguo 28/01/2005, 02:53
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
exactamente el mismo error?
Cita:
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 'desc,tel,ext1,usuario) VALUES ('NISSAN','Altima','1456','44444'
hasta ahí te imprime??... será que el problema esta con $moneda???.. no creo. Yo creo tu problema está al subir la imagen... quizá si buscas el tutorial de Cluster sobre subir archivos en binario a la BD... no entiendo bien lo que haces con $img1....
Otras sugerencias...
1.- Cuando guardas la extención... sería mejor utilizar el sistema if/elseif/else en vez de los if independientes como lo tienes...
2.- No reconoces el tipo "image/jpeg"...
3.- Tu mismo trata de buscar hasta dónde está bien tu código.... por ejemplo... trata de imprimir tu query ($sql) para ver qué es lo que te resulta, si recoje bien tus valores, si no te falta alguna comilla, etc..... ... aunque deberias ignorar el archivo en binario... cambialo temporalmente por algo como un simple texto "imagen".... no sé!... la cuestión es que... igual te puede ayudar el imprimir lo que estás haciendo...

Como sea... temo que ahora sí no te podré ayudar más... Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 28/01/2005, 02:55
 
Fecha de Ingreso: enero-2004
Mensajes: 431
Antigüedad: 20 años, 10 meses
Puntos: 6
ok muchas gracias, de hecho el script para subir imagenes esta basado en el tutorial de cluster, pero con ciertas modificaciones.

Muchas gracias
__________________
El que teme preguntar, se averguenza de aprender.
  #8 (permalink)  
Antiguo 28/01/2005, 03:01
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
con muchas modificaciones diria yo ... esta bien que experimentes por ti mismo... Suerte y cuando hayes la solución publicala para que quede el registro...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 28/01/2005, 11:17
 
Fecha de Ingreso: enero-2004
Mensajes: 431
Antigüedad: 20 años, 10 meses
Puntos: 6
ok claro que si pero la pregunta sigue abierta a cualquiera que me pueda ayudar :(

cuando lo reviso con el ZendStudio me dice que todo esta correcto no creo que falte alguna coma.

Espero que alguien pueda orientarme Gracias
__________________
El que teme preguntar, se averguenza de aprender.
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 21:27.