登录一个帐户并点击“接受”后。按钮系统应该在" otp"下的mysql表中插入一系列数字。用于验证目的的列。这里的问题是我想在WHERE子句中使其动态化。它应该根据用户ID本身识别并插入otp。 以下是代码。
if(isset($_POST['generate']))
{
$num = (rand(111111, 999999));
file_get_contents("somelink");
$query = mysqli_query($con, "UPDATE users SET otp='".$num."' WHERE id = 21");
$qry_run = mysqli_query($con, $query);
mysqli_close($con);
header("location: otp.php");
}
答案 0 :(得分:3)
你不应该使用与你的sql连接的var ..这个行为可以允许sql注入所以你应该使用prepare bind_param并执行
并且假设你在var中匹配id的值,你也可以使用这个var for param
$con = $con->prepare("UPDATE users SET opt = ? WHERE id = ?");
$con->bind_param('ii', $num, $id);
$num = (rand(111111, 999999));
$id = 21;
$con->execute();
mysqli_close($con);
答案 1 :(得分:0)
您是否考虑过在SQL中使用RAND()?
UPDATE users SET otp = RAND() WHERE id = 21