繁体   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