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
<?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ó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> </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!
Simplemente mira wque contiene la query... y la verificas en el motor de base de datos directamente.
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.
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. ;-)