[英]Inserting Variables In MySQL Query
如您所见,我有一个查询要在其中插入变量。我的语法出了什么问题?
$query = "UPDATE house SET epname=".$newtitle" WHERE epid= ".$epid;
基本语法错误是:
…e=".$newtitle" W…
^^
如果您打算沿着重击字符串的方式一起编写SQL语句,那么您应该利用双引号进行插值的事实。 这导致代码更具可读性。
$query = "UPDATE house SET epname=$newtitle WHERE epid=$epid";
但是打击字符串的方法有缺陷 。 使用准备好的语句 (最好使用PDO),它们很难创建SQL注入漏洞,并且(更容易理解)易于理解。
您的变量是字符串吗? 您将需要用引号将它们括起来,以用于MySQL查询。
另外,您在$ newtitle之后缺少连接运算符(句点)。
如果回显$ query的值,则应该看到错误:
UPDATE house SET epname=[value of newtitle] WHERE epid= [value of $epid]
假设epname是一个char / varchar值,而epid是某种整数,则可能要这样做:
$query = "UPDATE house SET epname = '" . mysql_real_escape_string($newtitle) . "' WHERE epid= " . $epid;
如果不在字符串周围使用mysql_escape_string函数,则很容易受到SQL注入攻击
$query = "UPDATE house SET epname=".$newtitle" WHERE epid= ".$epid;
应该
$query = "UPDATE house SET epname=".$newtitle." WHERE epid= ".$epid;
或更好
$query = "UPDATE house SET epname= $newtitle WHERE epid= $epid";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.