php - 通过从 MySQL 获取 id 将 $_SESSION ['name' ] 更改为 $_SESSION['id]

标签 php mysql pdo

我有一个登录表单,以 session 电子邮件开头。现在,由于我希望能够通过表单更新电子邮件地址,而不破坏 session ,因此我需要将 session 更改为 ID。问题是它不会向我发送 id 值到 session ,它只给我值 1,如下所示:www.mysite.com/profile.php?uid=1 而不是返回真实的 id 号。

有什么想法吗?

<?php
if(isset($_SESSION['email'])){
    $_SESSION['uid'] = fetch_user_id($_SESSION['email']);
    header("Location: profile.php?uid=" . $_SESSION['uid']);
    die();
}
?> 

<?php 
function fetch_user_id($email){
    global $db;
    $query = $db->query("SELECT id FROM user WHERE email='{$_SESSION['email']}'");
    $row = $query->fetch(PDO::FETCH_ASSOC);
    return true;
} 
?>

最佳答案

$row 正在存储结果,即找到的结果的(数组),您想要的是 $row['id']

关于php - 通过从 MySQL 获取 id 将 $_SESSION ['name' ] 更改为 $_SESSION['id],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16005778/

相关文章:

mysql - 使用分页和分数在两个不同的表中搜索数据

php - 需要帮助为 mysql 编写 array_diff() 查询

php - 修改并添加到 MySQL 结果

php - 升级 phpMyAdmin 到 4.3.4

PHP代码丢失,因为文件编码

php - 如何将 PHPUnit 与 VSCode 结合使用?

php - 将带有下拉菜单的文本插入数据库

php - 依赖项已被删除,但 Artisan 中存在类错误

没有嵌套查询的 Php 程序,使其成为有用的代码

mysql - 被检索两次 SQL 的结果