簡體   English   中英

在MySQL查詢中插入變量

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM