我想知道这样的事情是否可能吗?
$joinguild = "UPDATE guild SET '.$rank.'='.$receiver.' WHERE name ='"$dupecheckinfo["guild"]"'";
我正在尝试设置'。$ rank。'='。$ receiver。',但是我不知道是否可以在$ rank所在的位置使用变量。是否有编写此内容的正确方法。可能吗如果没有,您将如何处理?谢谢!
Here is my SQL table im working with
编辑:查看我的表如何具有Rank1 Rank2 Rank3等。那么我正在传递要设置的等级值,例如
$rank = $_POST["rank"];
$joinguild = "UPDATE guild SET '.$rank.'='.$username.' WHERE name ='"$dupecheckinfo["guild"]"'";
答案 0 :(得分:1)
您的问题尚不清楚,但是您的 PHP 语句中存在一些问题。我认为您正在尝试使用PHP变量创建 SQL UPDATE 查询。
尝试一下:
$joinguild = "UPDATE guild SET $rank='$receiver' WHERE name='" . $dupecheckinfo["guild"] . "'";
此处$rank
在您的表中应具有有效的列名。另请阅读有关SQL注入的信息。
答案 1 :(得分:0)
您的问题尚不清楚,但是要更新表中的记录,您可以使用以下代码行:
$sql=mysqli_query($conn, "UPDATE `table` SET option1='$op1', option2='$op2', option3='$op3', option4='$op4' where id='$id'");
如果不清楚,请告诉我。
答案 2 :(得分:0)
是的,您可以在查询中为表名和字段名使用变量。但是,应尽可能避免使用它,因为它通常会导致SQL injection漏洞。与其通过字符串连接构建查询,不如将prepared statements与bound parameters一起使用。有关一些很好的示例,请参见this page和this post。
不幸的是,绑定机制仅适用于值,不适用于表名或字段名,因此最好尝试避免使用可变的表/字段名。如果您确定绝对必要,那么最好的方法是确保变量的内容与允许的表/字段名称的预设白名单相匹配。