簡體   English   中英

使用帶有SET的PHP UPDATE作為設置為另一個變量的變量?

[英]Use PHP UPDATE with SET as a variable set to another variable?

我想知道這樣的事情是否可能?

$joinguild = "UPDATE guild SET '.$rank.'='.$receiver.' WHERE name ='"$dupecheckinfo["guild"]"'";

我試圖設置'。$ rank。'='。$ receiver。',但是我不知道我是否可以在$ rank所在的位置使用變量。 是否有編寫此內容的正確方法。 可能嗎 如果沒有,您將如何處理? 謝謝!

這是我正在使用的SQL表

編輯:看我的表如何具有Rank1 Rank2 Rank3等。那么我正在傳遞要設置的等級值,例如

$rank = $_POST["rank"];

$joinguild = "UPDATE guild SET '.$rank.'='.$username.' WHERE name ='"$dupecheckinfo["guild"]"'";

您的問題尚不清楚,但是您的PHP語句中有一些問題。 我認為您正在嘗試使用PHP變量創建SQL UPDATE查詢。

嘗試這個:

$joinguild = "UPDATE guild SET $rank='$receiver' WHERE name='" . $dupecheckinfo["guild"] . "'";

在這里$rank在表中應具有有效的列名。 另請閱讀有關SQL注入的信息。

您的問題尚不清楚,但是要更新表中的記錄,您可以使用以下代碼行:

  $sql=mysqli_query($conn, "UPDATE `table` SET option1='$op1', option2='$op2', option3='$op3', option4='$op4' where id='$id'");      

如果不清楚,請告訴我。

是的,您可以在查詢中為表名和字段名使用變量。 但是,應盡可能避免使用它,因為它通常會導致SQL注入漏洞。 與其使用字符串連接構建查詢,不如使用帶有綁定參數的 預處理語句 請參見此頁面此帖子,以獲取一些很好的示例。

不幸的是,綁定機制僅適用於值,不適用於表名或字段名,因此最好避免使用可變的表/字段名。 如果發現絕對必要,最好的方法是確保變量的內容與允許的表/字段名稱的預設白名單匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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