2012-02-16 37 views
0

不执行它“%”符号的列名我有一个MySQL查询如下MySQL查询与具有PHP

$query = "UPDATE student_database SET fname='$fname',mname='$mname',lname='$lname',dob='$dob',Age='$age',Sex='$sex',Caste='$caste',dept='$dept', SSC%=$ssc , HSC%=$hsc, ATKTs=$atkt, Last_sem%=$lastsem, Aggregate%=$agg WHERE student_id=$id ; "; 

一些列名有它的一个“%”的标志。 Mysql的抛出以下错误,当我执行它

Cannot execute.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 '%=79.6 , HSC%=81.83, ATKTs=5, Last_sem%=52.35, Aggregate%=53.6 WHERE student_id=' at line 1 

想不通我曾尝试“\”,“#”,“%%”为转义字符,但不能弄明白的问题。

回答

2

用反引号包装它告诉SQL它是一个列,这是否工作?

$query = "UPDATE student_database SET fname='$fname',mname='$mname',lname='$lname',dob='$dob',Age='$age',Sex='$sex',Caste='$caste',dept='$dept', `SSC%`=$ssc , `HSC%`=$hsc, ATKTs=$atkt, `Last_sem%`=$lastsem, `Aggregate%`=$agg WHERE student_id=$id ; "; 
+0

谢谢KAVISIEGEL,帮助。你能解释一下问题是什么? – Jonah 2012-02-16 17:37:13

+1

在MySQL查询中,为了说某些东西是一列,它可以用反引号包装。注意在上面的代码中,它说'''SSC%\''在你的代码中,它表示'SSC%' – 2012-02-16 17:39:37

1

尝试在反引号包裹的列名,e.g

`SSC%`=$ssc