当前位置: 首页> 最新文章列表> 利用 mysqli_result 与 Session 存储结合示例

利用 mysqli_result 与 Session 存储结合示例

M66 2025-05-28

在开发 PHP 网站应用时,我们常常需要将从数据库中获取的数据动态地展示到前端,并且希望用户在页面刷新或离开后,这些数据能够得到持久化存储,防止丢失。结合 mysqli_result 函数与 PHP 的 Session 存储,可以非常方便地实现这一目标。本文将详细介绍如何利用这两者进行数据的动态展示与持久化。

1. 什么是 mysqli_result 函数?

mysqli_result 是 PHP 中用于处理 MySQL 查询结果的类。它通常是通过 mysqli_querymysqli_store_result 函数获得的,提供了多种方法来遍历查询结果。下面是一个简单的例子:

<?php
// 连接到 MySQL 数据库
$mysqli = new mysqli("localhost", "user", "password", "database");

// 检查连接是否成功
if ($mysqli->connect_error) {
    die("连接失败: " . $mysqli->connect_error);
}

// 执行查询
$query = "SELECT id, name, email FROM users";
$result = $mysqli->query($query);

// 使用 mysqli_result 类来遍历查询结果
if ($result->num_rows > 0) {
    // 输出每一行的数据
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 结果";
}
$mysqli->close();
?>

在上述代码中,$result 变量包含了数据库查询的结果,我们使用 fetch_assoc 方法来逐行提取数据并显示。

2. 什么是 Session 存储?

Session 是 PHP 提供的一种用于存储用户会话信息的方式。当用户访问网站时,PHP 会为每个用户分配一个唯一的 Session ID,并通过这个 ID 存储一些数据。这些数据可以在用户的整个会话期间保持不变,直到用户退出会话或关闭浏览器。

Session 的使用非常简单,我们只需要通过 session_start() 来启动会话,然后使用 $_SESSION 数组来存储和获取数据。

<?php
// 启动会话
session_start();

// 存储数据到 Session
$_SESSION['user_id'] = 1;
$_SESSION['user_name'] = "John Doe";

// 获取数据
echo $_SESSION['user_name'];  // 输出: John Doe
?>

3. 如何结合 mysqli_result 和 Session 实现数据的动态展示与持久化?

接下来,我们将结合 mysqli_result 函数和 Session 存储来实现一个功能:从数据库中动态获取用户数据并展示,同时在页面刷新或用户离开后,保持用户数据的持久化存储。

步骤 1:查询数据库并存储数据到 Session

首先,我们需要从数据库中查询所需的数据,并将这些数据存储到 Session 中。这里我们假设要获取用户的基本信息,并将其存储到 Session,以便在后续的页面访问中可以直接使用。

<?php
// 启动会话
session_start();

// 连接到数据库
$mysqli = new mysqli("localhost", "user", "password", "database");

// 检查连接是否成功
if ($mysqli->connect_error) {
    die("连接失败: " . $mysqli->connect_error);
}

// 执行查询
$query = "SELECT id, name, email FROM users WHERE id = 1";
$result = $mysqli->query($query);

// 将查询结果存储到 Session
if ($result->num_rows > 0) {
    $user_data = $result->fetch_assoc();
    $_SESSION['user_data'] = $user_data;
} else {
    echo "没有找到用户数据";
}

$mysqli->close();
?>

步骤 2:在页面上动态展示数据

接下来,我们需要在页面上动态展示存储在 Session 中的数据。无论用户刷新页面多少次,只要 Session 没有过期或被清空,数据都能保持在 $_SESSION 数组中。

<?php
// 启动会话
session_start();

// 检查是否已经存储了用户数据
if (isset($_SESSION['user_data'])) {
    $user_data = $_SESSION['user_data'];
    echo "用户 ID: " . $user_data['id'] . "<br>";
    echo "用户名: " . $user_data['name'] . "<br>";
    echo "电子邮件: " . $user_data['email'] . "<br>";
} else {
    echo "没有找到用户数据";
}
?>

步骤 3:清除 Session 数据

有时,我们需要在用户注销或退出登录时,清除 Session 中的数据。可以使用 session_unset()session_destroy() 来清除 Session 数据。

<?php
// 启动会话
session_start();

// 清除 Session 数据
session_unset();

// 销毁 Session
session_destroy();

echo "您已成功注销";
?>

4. 小结

通过结合 mysqli_result 函数和 PHP 的 Session 存储,我们能够实现动态展示数据库中的数据,并且在用户刷新页面后,依然能够保持数据的持久化。Session 为每个用户提供了一个持久的存储空间,而 mysqli_result 让我们能够轻松地从数据库中获取并处理数据。

这种技术对于需要用户登录状态、个性化设置、或者临时存储用户数据的应用来说非常有用。通过灵活的结合这两者,可以提升用户体验并有效管理数据。