2011-09-21 115 views
0

我有一个本地电脑上有一个窗体,将POST的值提交给我的服务器上的PHP文件的HTML表单。SQL PhP插入查询问题

PHP文件应该进入表单值到数据库中,但我不断收到以下错误:

您的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以在'desc,lat,lng'附近使用正确的语法VALUES('test','51 .489755','-3.177407')'在第1行

html form:

<form action="http://www.myurl.co.uk/folder/Add.php" method="POST"> 
    <input type="text" name="desc" id="desc" /> 
    <input type="text" name="lat" id="lat" /> 
    <input type="text" name="lng" id="lng" /> 

    <input type="submit" value="submit" name="submit" /> 
     </form> 

PHP:

if($_POST) 
{ 
$desc = mysql_real_escape_string(trim($_POST['desc'])); 
$lat = $_POST['lat']; 
$lng = $_POST['lng']; 


$posting = mysql_query("INSERT INTO tableName (desc, lat, lng) VALUES ('$desc', '$lat', '$lng')") or die(mysql_error()); 

我敢肯定的是,INSERT语句是正确的,因为我已经这样做了这么多次,但由于某种原因不会做。

我知道正在发送的表单ar的值,就像查看我收到的错误一样,表单值位于查询的VALUES部分。

任何反馈是非常赞赏

回答

1

desc是一个保留字。你必须逃避它:

$posting = mysql_query("INSERT INTO tableName (`desc`, `lat`, `lng`) VALUES ('$desc', '$lat', '$lng')") or die(mysql_error()); 
0

desc是一个保留字。试试这个:

$posting = mysql_query("INSERT INTO `tableName` (`desc`, `lat`, `lng`) VALUES ('$desc', '$lat', '$lng')") or die(mysql_error()); 
0

desc是mysql中的一个保留关键字。在您的查询,通过

`desc` 
0

descDESC更换

desc 

是SQL保留关键字来表示结果的顺序。

ASC =升序 DESC =降序。

更改SQL以

INSERT INTO tableName (`desc`, lat, lng) VALUES ('$desc', '$lat', '$lng')