繁体   English   中英

将数据库结果存储到 PHP 中的变量

[英]Storing database results to a variable in 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 中,但我似乎找不到任何关于它的信息,或者我没有在正确的方向上搜索。 任何人都可以指出我应该在哪里阅读有关此内容以了解如何有效地执行此操作并在可能的情况下发布一个小示例?

使用会话:

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 语句阻止您尝试多次启动它。

$categories = array();
$catSql = "SELECT id, name FROM categories";
if ($catStmt = mysqli_prepare($db, $catSql)) 
{
    $catStmt->execute();
    $result = $catStmt->get_result();
    while ($row = $result->fetch_assoc()) 
    {
        $categories[$row['id']]=$row['name'];
    }
}

如果您想在任何地方使用以下名称:

$categories[$id]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM