首页 > 解决方案 > 将数据库结果存储到 PHP 中的变量中

问题描述

我正在尝试存储 MySQL 语句的结果以供以后在 PHP 中使用。我有这段代码可以得到结果:

// Get the categories from the db.
$categories = array();
$catSql = "SELECT id, name FROM categories";
if ($catStmt = mysqli_prepare($db, $catSql)) 
{
    $catStmt->execute();
    $result = $catStmt->get_result();
    // Fetch the result variables.
    while ($row = $result->fetch_assoc()) 
    {
        // Store the results for later use.
    }
}

所以我知道我会得到结果,$row["id"]并且$row["name"]我想保存所有行,所以每当我需要它们时,我可以循环遍历它们,例如回显它们。我已经搜索了将它们保存在 PHP 中的结构和数组,但我似乎找不到任何关于它的信息,或者我可能没有在正确的方向上搜索。谁能指出我应该在哪里阅读以了解如何有效地做到这一点,并在可能的情况下发布一个小例子?

标签: phpmysql

解决方案


使用会话:

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

// Get the categories from the db.
$categories = array();
$catSql = "SELECT id, name FROM categories";
if ($catStmt = mysqli_prepare($db, $catSql)) 
{
    $catStmt->execute();
    $result = $catStmt->get_result();
    // Fetch the result variables.
    while ($row = $result->fetch_assoc()) 
    {
        // Store the results for later use.
        $_SESSION['category_' . $row['id']] = $row['name'];
    }
}

然后稍后从不同的页面访问它

$_SESSION['session_variable_name']

您还可以创建信息数组并将整个数组存储在单个会话变量中。

只需确保在每个页面的开头添加 session_start 函数即可。if 语句可防止您尝试多次启动它。


推荐阅读