Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: soru13 en 14 Mayo 2012, 22:00 PM

Título: error sintaxis INSERT INTO
Publicado por: soru13 en 14 Mayo 2012, 22:00 PM
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!

Título: Re: error sintaxis INSERT INTO
Publicado por: Shell Root en 15 Mayo 2012, 15:31 PM
Simplemente mira wque contiene la query... y la verificas en el motor de base de datos directamente.
Título: Re: error sintaxis INSERT INTO
Publicado por: HdM 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.

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 (http://dev.mysql.com/doc/refman/5.0/es/reserved-words.html)

Saludos.
Título: Re: error sintaxis INSERT INTO
Publicado por: soru13 en 15 Mayo 2012, 16:40 PM
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 (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.  ;-)