[英]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.