error sintaxis INSERT INTO

Iniciado por soru13, 14 Mayo 2012, 22:00 PM

0 Miembros y 1 Visitante están viendo este tema.

soru13

hola,tengo el siguiente código y me da error al insertar un registro a la base de datos y no sé porqué, llevo un rato y nada, aver si ustedes saben porqué:

el error es este:

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 'long,nombre,desc,id_anuncio)
VALUES ('40.356879','-3.9006689999999935','nombre',' at line 1


Código (php) [Seleccionar]


<?php 
session_start
(); 
if(empty(
$_SESSION['idusuario'])){
header("location:../index.php");
}else{
$id_usuario $_SESSION['idusuario'];
$id_anuncio $_GET['id'];
}
?>


   <?php
if(isset($_POST['new_posicion'])){
include("../../config.php");
$latitud $_POST['lat'];
$longitud $_POST['lng'];
$link mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($db$link); 
$result mysql_query("SELECT * FROM anuncios WHERE id_user = $id_usuario ORDER BY id DESC LIMIT 1"$link);
while($row mysql_fetch_array($result)){ 
$nombre $row['nombre'];
$des $row['presentacion'];
}
//cortamos la presentación a 150 carácteres.
$cantidadCaracteres 150;
$subcadena substr($des,0,$cantidadCaracteres);
$indiceUltimoEspacio strrpos($subcadena," ");
$des substr($des,0$indiceUltimoEspacio);
$des $des." [...]";
//AGREGAMOS LOS DATOS A LA BD
$agregar mysql_query("INSERT INTO mapa (lat,long,nombre,desc,id_anuncio) VALUES ('$latitud','$longitud','$nombre','$des','$id_anuncio')"$link);
if($agregar == true){
echo "OK";
}else{
echo mysql_error(); 
}
}else{
?>

   <table width="100%" border="0" cellspacing="10">
   <tr><td align="center"><div id="markerStatus" style="visibility:hidden;"></div>
   <div class="div"><font size="+3">Arrastra el marcador hasta tu localizaci&oacute;n de trabajo.</font></div></td></tr>
     <tr>
       <td align="center"><div id="mapCanvas"></div></td>
     </tr>
     <tr>
       <td align="center"><div id="infoPanel">
       <form name="posiciones" action="?id=<?php echo $id_anuncio?>&guardar" method="post">
       <input type="submit" name="new_posicion" id="button" value="Aceptar"><br>
       <input type="text" name="lat" style="visibility:hidden;"/>
       <input type="text" name="lng" style="visibility:hidden;"/>
       </form>
       </div></td>
     </tr>
     <tr>
       <td>&nbsp;</td>
     </tr>
   </table>
       <?php ?>



Ninguna variable está vacía.

la tabla es la siguiente:

id    int(100)
lat    varchar(500)
long    varchar(500)
nombre    varchar(50)
desc    text
id_anuncio    int(100)

Gracias y un saludo!


Shell Root

Simplemente mira wque contiene la query... y la verificas en el motor de base de datos directamente.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

HdM

Buenas.

Estás haciendo uso de palabras reservadas como nombres de campo en la tabla que intentas actualizar.

Citarla tabla es la siguiente:

id    int(100)
lat    varchar(500)
long    varchar(500)
nombre    varchar(50)
desc    text
id_anuncio    int(100)

http://dev.mysql.com/doc/refman/5.0/es/reserved-words.html

Saludos.

- Nice to see you again -

soru13

Cita de: Bulld0z3r en 15 Mayo 2012, 16:00 PM
Buenas.

Estás haciendo uso de palabras reservadas como nombres de campo en la tabla que intentas actualizar.

http://dev.mysql.com/doc/refman/5.0/es/reserved-words.html

Saludos.

en efecto, era por usar esas palabras reservadas, ni me había parado a pensarlo.

Muchas gracias por tu ayuda Bulld0z3r;-)