2012-05-06 59 views
0

我試圖建立一個更新查詢,但我不斷收到以下錯誤:爲什麼我在自定義PHP代碼中獲取SQL語法錯誤?

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 '='Damien', last_name ='Surname', where id ='49'' at line 2

我的PHP如下:

if($get['cmd'] == 'sname') 
{ 
mysql_query("update users 
`first_name`='$get[first_name]', 
`last_name`='$get[last_name]', 
where `id`='$get[id]'") or die(mysql_error()); 
//header("Location: $ret"); 
echo "changes done"; 
exit(); 
} 

和HTML如下

<input name="doSave" type="button" id="doSave" value="Save" onclick='$.get("dos.php",{ cmd: "sname",first_name:$("input#first_name").val(),last_name:$("input#last_name").val(),id: "<?php echo $row_settings['id']; ?>" } ,function(data){ $("#msg").html(data); });'> 

任何人都可以看到我的代碼中有什麼問題會給我這個錯誤?

+5

尼斯[SQL注入孔(HTTP: //bobby-tables.com)...享受你的服務器pw3nd。 –

+0

@Marc B - 那個評論如何幫助我? – dpDesignz

+0

你介意給我一個阻止這個的想法嗎?請注意,這只是我的演示數據庫,當我上線時將會完全改變?感謝您的鏈接@Siva – dpDesignz

回答

4

如果我沒有需要一系列錯誤的關鍵字和額外的逗號是要removed..correct我,如果我錯了...

if($get['cmd'] == 'sname') 
{ 
    mysql_query("update users SET 
    first_name ='$get[first_name]', 
    last_name ='$get[last_name]' 
    where id ='$get[id]'") or die(mysql_error()); 
    //header("Location: $ret"); 
    echo "changes done"; 
    exit(); 
} 
2

你有一個comma後面的聲明是不需要的。

`last_name`='$get[last_name]', 

它應該如下所述。請注意,comma已從該行末尾移除。

`last_name`='$get[last_name]' 
+0

當然。我甚至沒有想到這一點。 :)。感謝堆。隨答案評論 – dpDesignz

相關問題