Php 如何根据用户ID更新数据库字段?

Php 如何根据用户ID更新数据库字段?,php,mysql,mysqli,Php,Mysql,Mysqli,我正在尝试用一些相关的空白来创建一个个人资料页面,例如用户名、城市、国家和地址。目前我只在处理用户名。我的问题是,如何根据登录用户的ID更新数据库中的用户名。对于初学者,我为每个用户都有一个ID列,包括他们的名字、姓氏和电子邮件。目前,我的WHERE子句在查询中表示WHERE id=1,这就是为什么它在第1行存储我输入的用户名。我想知道,如何根据登录用户的ID存储用户名。是的,只有登录用户才能访问我正在处理的配置文件页面 这是我的action.php: <?php session_star

我正在尝试用一些相关的空白来创建一个个人资料页面,例如用户名、城市、国家和地址。目前我只在处理用户名。我的问题是,如何根据登录用户的ID更新数据库中的用户名。对于初学者,我为每个用户都有一个ID列,包括他们的名字、姓氏和电子邮件。目前,我的WHERE子句在查询中表示
WHERE id=1
,这就是为什么它在第1行存储我输入的用户名。我想知道,如何根据登录用户的ID存储用户名。是的,只有登录用户才能访问我正在处理的配置文件页面

这是我的action.php:

<?php
session_start(); //---> start session
require('db.php');
ini_set('display_errors', 1); ini_set('log_errors',1); error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$con = mysqli_connect('localhost', 'id1753243_venom', 'roushan123', 'id1753243_gameware_01');
if(!$con)
{
    echo 'Not connected to the server';
}

$id = $_SESSION['id'];

if(isset($_POST['username']))
{
    $username = $_POST['username'];
   $sql = "UPDATE users SET username='".mysqli_real_escape_string($con,$username)."' WHERE id = '.$id.'";
    $insert = mysqli_query($con,$sql);
    $_SESSION['username'] = $username; //---> this will store username into session variable
}

if(!$insert)
{
    echo 'Not inserted';
}
else
{
    echo 'Inserted';
}
header("refresh:2; url=user.php");
?>


上面的WHERE子句似乎也不起作用。我希望这里有人能帮我解决问题,因为这对我来说非常重要。提前谢谢

请仔细查看“
”.$id.“
。您已经在使用一个支持带有有界变量输入的预处理语句的API,您应该利用带有占位符(预处理语句)的参数化查询来保护您的数据库!开始使用and.Or(编辑:and):使用准备好的语句来实际防止这些错误和类似的错误,例如:答案中还显示了在查询失败时如何进行正确的错误检查。-代码中的整体流逻辑是正常的,只是您编写代码的方式很难调试并且容易出错。id='“$id。”“还是不行@Qirel@RoushanDrifter你误解了我的评论
其中id='.$id.''“
是您当前拥有的,这是错误的-它没有浓缩,因此这些点过多。它应该是
其中id='$id'
。(如果是整数,甚至不带单引号)。但如果你使用事先准备好的语句,这个问题无论如何都会得到解决。