首页 > 解决方案 > 如何获取登录用户的当前user_id

问题描述

我刚刚创建了一个 php 文件来更新 mysql db 中的一个字段,我的更新查询是我遇到问题的地方,我想将 'user_id' 设置为当前登录用户的 user_id,以便更新将转到合适的用户。我无法让它工作。我觉得是因为我没有在代码的前面声明当前用户,我该怎么做?

这是行:

$sql = "UPDATE wp85_usermeta SET `meta_value` = `meta_value`+65000 WHERE `user_id` = user_id AND `meta_key` = 'mycred_default'"

这是完整的代码:

<?php
    $servername = "localhost";
    $username = "sparyqmr_wp324";
    $password = "(S8p3uV-2t";
    $dbname = "sparyqmr_wp324";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }

    $sql = "UPDATE wp85_usermeta SET `meta_value` = `meta_value`+65000 WHERE `user_id` = user_id AND `meta_key` = 'mycred_default'";

    if ($conn->query($sql) === TRUE) {
        echo "Record updated successfully";
    } else {
        echo "Error updating record: " . $conn->error;
    }

    $conn->close();
?>

标签: phpmysqlwordpress

解决方案


尝试使用会话变量。会话变量是为每个用户存储在服务器上的全局变量。

如果用户登录,您可以将他的用户 ID 存储在会话变量中。如果会话已启动,您可以在所有文档中访问此变量。

您可以通过以下方式开始会话:

session_start();

您可以使用以下代码设置会话变量:

$_SESSION['userid'] = 'your_user';

推荐阅读