假设我有这样一个表单
<?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
最佳答案
最重要的是:您的查询是开放给 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);
关于php - 有没有办法在 MySQL 更新查询中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52621044/