Php 是否更新当前登录用户的sql表值?

Php 是否更新当前登录用户的sql表值?,php,mysql,sql,phpmyadmin,alter,Php,Mysql,Sql,Phpmyadmin,Alter,我有一个登录系统,和一个点系统这个页面。用户每次完成一项任务,将获得+5分。现在,如何更新当前登录用户数据库中的point值 我知道我可以做updatetable SET point=+5,其中id=usersid,但我不知道如何获取当前登录用户的id?登录和注册系统是用PDO编写的 以下是config.php的完整代码: 我想你需要 $pdo = new PDO('mysql:host=localhost;dbname=someDatabase', $username, $password)

我有一个登录系统,和一个点系统这个页面。用户每次完成一项任务,将获得+5分。现在,如何更新当前登录用户数据库中的point值

我知道我可以做
updatetable SET point=+5,其中id=usersid
,但我不知道如何获取当前登录用户的id?登录和注册系统是用PDO编写的

以下是config.php的完整代码:

我想你需要

$pdo = new PDO('mysql:host=localhost;dbname=someDatabase', $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $pdo->prepare('UPDATE table  SET point = point + 5 WHERE id = :usersid');
$stmt->execute(array(
':usersid'   => $user_id
));

您只能通过了解某个用户的用户ID(或该用户独有的其他值)来编辑该用户的点

正如您在评论中明确指出的,您将用户ID保存在会话中。您必须记住的是,在每个更新用户点的页面中都包含您的
config.php

require 'config.php';
接下来需要知道的是,可以使用PHP的全局会话变量从会话中获取用户ID

$userId = $_SESSION['user_id']; // Note: this could have some other name in your case
现在我们有了用户ID,就可以开始更新该用户的点了。我不知道你和数据库通信的方法是什么,所以我把这个留给你了

现在我们要更新用户点

$query = "UPDATE users SET point=point+5 WHERE user_id='".$userId."' LIMIT 1";

就这些

当用户登录时,您必须将用户id存储在会话中,并在需要时从会话中获取它。至少我会这么做。登录时,您可以设置一个$_会话['userId']=USER的ID。然后使用这个会话从您正在使用的任何页面获取用户ID,只要会话_start();调用。如何确定用户是否已登录?能否执行
var\u转储($\u会话)
并编辑您的问题添加结果?@CoderofCode当用户登录时,我在config.php文件中启动会话。然后我可以使用
require('config.php')以确定他们是否登录。我已尝试在一个单独的文件reward.php中编写查询,并重定向到该文件。我知道这不是一种安全的方法,但这只是为了测试目的。不管怎样,我不会得到任何结果,分数也不会更新。我做错了什么?我几乎100%肯定我的代码是正确的。我也没有收到任何错误。如果没有错误,我怀疑您的表中没有具有相应用户id的记录。这不是问题@Peter,我已尝试将我的PHP$查询代码复制/粘贴到phpmyadmin SQL命令行中,它正是我所希望的。@metadog您可以添加代码吗(不带用户名和密码)的问题。当您进行此操作时,您的表结构也会很有用。@metadog
session\u start()
应始终位于脚本的顶部