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

如何使用PHP获取被点击链接对应的名称ID并用于数据库查询

如何在PHP中传递并获取点击链接对应的名称ID?

我来给你一步步讲清楚怎么实现,核心就是把对应的name_id通过URL参数传递到page.php,再在目标页面安全地获取并使用这个参数:

1. 修改生成链接的代码,带上name_id参数

你之前的while循环里生成的链接没传递ID,得把每个名称对应的name_id加到URL里。比如把循环里的链接代码改成这样:

// 假设你从查询结果里拿到的行数据存在$row变量中,包含id和name字段
while ($row = mysqli_fetch_assoc($result)) {
    $name_id = $row['id'];
    $name = $row['name'];
    echo "$name_id = <a href='page.php?name_id=$name_id'>$name</a> ";
}

这样生成的链接会变成page.php?name_id=01、page.php?name_id=02这类形式,点击时就会把对应ID带过去。

2. 在page.php中安全获取name_id参数

到了page.php,你可以通过$_GET全局数组获取URL里的name_id,但千万不能直接用原始值拼SQL,会有SQL注入风险。先做类型校验和过滤:

// 检查参数是否存在,同时转为整数(因为ID是数字类型)
$name_id = isset($_GET['name_id']) ? intval($_GET['name_id']) : 0;

// 如果ID为0,说明没有传递有效参数,做错误处理
if ($name_id === 0) {
    echo "请选择有效的名称";
    exit;
}

3. 使用预处理语句执行查询(关键!防注入)

接下来用预处理语句执行查询,这是最安全的做法,以mysqli为例:

// 假设你已经建立了数据库连接$conn
$sql = "SELECT * FROM database.table WHERE name_id = ?";
$stmt = mysqli_prepare($conn, $sql);
// 绑定参数,"i"表示参数是整数类型
mysqli_stmt_bind_param($stmt, "i", $name_id);
// 执行语句
mysqli_stmt_execute($stmt);
// 获取查询结果
$result = mysqli_stmt_get_result($stmt);
// 处理结果
if ($row = mysqli_fetch_assoc($result)) {
    // 输出或使用该名称的属性
    print_r($row);
} else {
    echo "没有找到对应的信息";
}
// 关闭语句和连接
mysqli_stmt_close($stmt);
mysqli_close($conn);

如果用PDO的话思路类似,核心都是用占位符代替直接拼接参数,彻底避免SQL注入风险。

内容的提问来源于stack exchange,提问作者Willliam A

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 05:23:13