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

PHP执行SQL查询无法返回ID,登录时会话UserID保存失败如何解决

故障原因

你的查询语句只检索了admin字段,没有将id字段加入查询列表,因此执行fetch()后得到的结果数组中不存在id索引,自然无法读取到对应值;而admin字段是你明确指定查询的,所以可以正常取值。

修复方案
  • 修改Login函数内的SQL查询语句,新增id字段的查询:
    将原有SQL行
$sql = "SELECT admin FROM admin WHERE admin=:admin AND password=:password LIMIT 1";

替换为:

$sql = "SELECT id, admin FROM admin WHERE admin=:admin AND password=:password LIMIT 1";
  • 可选优化建议:
    • 不要明文存储用户密码,注册时使用password_hash()加密密码存储,登录时调用password_verify()校验密码正确性,避免数据泄露后密码直接暴露
    • 调用fetch()时明确指定返回格式为关联数组:$stmt->fetch(PDO::FETCH_ASSOC),避免因PDO默认配置返回索引+关联的混合数组,导致取值异常
    • 避免使用全局变量传递数据库连接,改用依赖注入的方式传入数据库实例,降低代码耦合度

内容的提问来源于stack exchange,提问作者Oliver Tucker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:39:05