假设我有这样的表格
<?php include 'file2.php' ; ?>
<form action="file1.php" method="POST">
<input type="hidden" name="LHS" value="column1">
<input type="hidden" name="RHS" value="row">
<button type="submit">Submit</button>
</form>
我在file2.php
中有一个更新查询,
$lhs = $_POST['LHS']
$rhs = $_POST ['RHS']
$update = "UPDATE table1 SET
column1 = '".$rhs."'
WHERE id = '".$_SESSION['id']."'";
mysqli_query($conn, $update);
所以我的问题是如何使用变量($ lhs)代替“ column1”来更新mysql数据
我也尝试过$table1['column1']
方法,但是它似乎只能在Rhs一侧工作,而不能在LHS上工作
答案 0 :(得分:1)
最重要的是:您的查询对SQL Injection相关的攻击开放。请学习如何使用Prepared Statements
而且,您的$lhs
变量的值似乎是Reserved keyword in MySQL。顺便说一句,它也是您的列名。因此,您need to use backticks(`),要求MySQL将其视为列/表/数据库名称或某些别名表达式。
现在,只需执行以下操作,即可将$lhs
用作“更新”查询中的一列:
$update = "UPDATE table1 `" .
$lhs . "` = '" . $rhs . "'
WHERE id = '".$_SESSION['id']."' ";
mysqli_query($conn, $update);