MYSQL/PHP语法错误-使用POST值

MYSQL/PHP语法错误-使用POST值,php,mysql,Php,Mysql,我的语法有以下错误 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解在第1行的“replace='NOCOLOGY1'附近使用的正确语法,其中search='COMPANYNAME' $comp = "UPDATE msp_rereplacer SET replace='".addslashes($_POST[companyname])."' WHERE search='COMPANYNAME' "; 有人能指出我遗漏了什么吗?replace是trybackticksrepl

我的语法有以下错误

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解在第1行的“replace='NOCOLOGY1'附近使用的正确语法,其中search='COMPANYNAME'

$comp = "UPDATE msp_rereplacer SET replace='".addslashes($_POST[companyname])."' WHERE search='COMPANYNAME' ";
有人能指出我遗漏了什么吗?

replace
是trybackticks
replace
backticks

应该是

.addslashes($_POST['companyname']).

$comp = "UPDATE msp_rereplacer SET `replace`='".addslashes($_POST['companyname'])."' WHERE search='COMPANYNAME' ";
相当于

$comp = "UPDATE msp_rereplacer SET `replace`='".mysql_real_escape_string($_POST['companyname'])."' WHERE search='COMPANYNAME' ";
注意

不鼓励使用此扩展名
(mysql*
)。相反,or

读得好


替换是。。。。在backticks(`)中引用它。

trued$comp=“UPDATE msp\u rereplacer SET'replace'=”。addslashes($\u POST['companyname'])。“'WHERE search='companyname';由于没有luckbackticks(`),没有单引号(')尝试切换,没有help@JustinBevan试试上面的问题为什么不使用mysql\u real\u escape\u string()现在可以使用backticks,但这不是一个实际的程序,只是一个一次性使用的脚本。谢谢你@RohitKumarChoudhary是的。。。。addslashes更糟糕,,,相反,我想使用准备好的语句
addslashes()
不足以阻止SQL注入。使用一个准备好的/参数化的查询。使用mysql\u real\u escape\u string()这是一个一次性使用的脚本,所以安全问题不会影响我在一次使用后删除!
$comp = "UPDATE msp_rereplacer SET `replace`='".mysql_real_escape_string($_POST['companyname'])."' WHERE search='COMPANYNAME' ";