2011-09-21 98 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')