You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据当前登录用户名筛选关联Users表的Mandates数据表数据

解决方法

要只返回当前登录用户相关的数据,你需要在SQL查询里添加用户筛选条件,同时必须用预处理语句避免SQL注入,具体操作如下:

1. 先获取当前登录用户名

一般登录后用户的用户名会存在Session中,先确保开启Session:

session_start();
// 假设当前登录用户的用户名存在 $_SESSION['username'] 里
$current_user = $_SESSION['username'];

2. 修改查询语句(安全写法)

替换你原来的查询代码,改成带筛选条件的预处理查询:

<?php
session_start();
$current_user = $_SESSION['username'];

// 使用JOIN语法更规范,同时添加用户筛选条件,用预处理防注入
$query = "SELECT m.*, u.name FROM mandates m JOIN users u ON m.provider = u.name WHERE u.name = ?";
$stmt = mysqli_prepare($con, $query);
// 绑定参数,"s"表示参数是字符串类型
mysqli_stmt_bind_param($stmt, "s", $current_user);
mysqli_stmt_execute($stmt);
$query_run = mysqli_stmt_get_result($stmt);

if(mysqli_num_rows($query_run) > 0) {
    foreach($query_run as $mandates) {
        // 这里写你处理每条数据的逻辑
    }
}

重要提示

  • 用JOIN替代旧的逗号关联表的写法,这是SQL的标准写法,可读性更强。
  • 必须用预处理语句绑定参数,不能直接把变量拼进SQL里,否则会有SQL注入风险。
  • 如果你的当前登录用户名存在其他地方(比如Cookie或者自定义变量),把$current_user替换成对应的变量就行。

内容的提问来源于stack exchange,提问作者Nine Delos Reyes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 08:15:37