2015-09-08 60 views
0

我收到有關我的查詢的錯誤,但我不理解問題可能是什麼。我得到的錯誤是更新查詢時出現MySQL語法錯誤

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 'range = '55', atkspeed = '0.95', m_damage = '0', p_damage = '38', mprotection = ' at line 1 

,而我使用的代碼是這樣的一個

$id = mysql_real_escape_string($_POST["id"]); 
$value0 = mysql_real_escape_string($_POST["value0"]); 
$value1 = mysql_real_escape_string($_POST["value1"]); 
$value2 = mysql_real_escape_string($_POST["value2"]); 
$value3 = mysql_real_escape_string($_POST["value3"]); 
$value4 = mysql_real_escape_string($_POST["value4"]); 
$value5 = mysql_real_escape_string($_POST["value5"]); 
$value6 = mysql_real_escape_string($_POST["value6"]); 
$value7 = mysql_real_escape_string($_POST["value7"]); 
$value8 = mysql_real_escape_string($_POST["value8"]); 
$value9 = mysql_real_escape_string($_POST["value9"]); 
$value10 = mysql_real_escape_string($_POST["value10"]); 


$query="UPDATE char_stats SET vita = '$value0', mana = '$value1', speed = '$value2', range = '$value3', atkspeed = '$value4', m_damage = '$value5', p_damage = '$value6', mprotection = '$value7', pprotection = '$value8', hp5 = '$value9', mp5 = '$value10' WHERE id_char_stats='$id'"; 

我使用的是還有其他非常類似的查詢,所以我不明白的問題,可能是什麼。我正在考慮char_stats上的下劃線,所以我嘗試使用

char\_stats 

逃脫,但它無法正常工作。

在此先感謝

+0

這是可能出錯了$值2(如一個雙引號/撇號) - mysql的傾向顯示的代碼位只是語法錯誤之後。 – Giles

+0

'$ value2'是否包含'''? –

+0

'$ value2'是一個整數,所以它不應該包含任何''' – Mastarius

回答

1
create table t11 
(
    id int not null, 
    `range` int not null, 
    speed int not null 
); 

update t11 set range='11', speed=1; -- blows up 
update t11 set `range`='11', speed=1; -- fine 
update t11 set `range`=11, speed=1; -- fine 

道德商店:回剔範圍。即使創建桌子也沒有它。

查看mysql關鍵字和保留字hereRange就是其中之一。

所以您的查詢就會變成:

$query="UPDATE char_stats SET vita = '$value0', mana = '$value1', speed = '$value2', `range` = '$value3', atkspeed = '$value4', m_damage = '$value5', p_damage = '$value6', mprotection = '$value7', pprotection = '$value8', hp5 = '$value9', mp5 = '$value10' WHERE id_char_stats='$id'"; 
+0

下面非常感謝您的回答,這是解決問題。 – Mastarius