當前位置: 首頁> 最新文章列表> 利用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讓我們能夠輕鬆地從數據庫中獲取並處理數據。

這種技術對於需要用戶登錄狀態、個性化設置、或者臨時存儲用戶數據的應用來說非常有用。通過靈活的結合這兩者,可以提升用戶體驗並有效管理數據。