我必须在每个页面上复制并粘贴这么长的 session 列表,例如 home.php、notices_list.php、histories.php、make_post.php、edit_post.php 等。 我需要缩短这段代码,以便缩短每个文件的大小。
我在 MySQL 表列名称之后标记了 session 变量,因此,如果我为脚本编写一段代码来获取列名称,然后根据列名称创建 session ,那么代码会缩短很多每一页。因此我的网络服务器的 CPU 繁忙程度会降低。
我当前的代码如下所示:
<?php
$id = $_SESSION["id"];
$email = $_SESSION["email"];
$username = $_SESSION["username"];
$first_name = $_SESSION["first_name"];
$surname = $_SESSION["surname"];
$gender = $_SESSION["gender"];
$dob = $_SESSION["date_of_birth"];
$religion = $_SESSION["religion"];
$education = $_SESSION["education"];
$profession = $_SESSION["profession"];
$state = $_SESSION["state"];
$country = $_SESSION["country"];
}
?>
这是我的尝试:
1.
<?php
$sql = "SHOW COLUMNS FROM browsing_histories";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
$$row['Field'] = $_SESSION["$row['Field']"]."<br>";
}
?>
另一次尝试: 2.
<?php
$sql = "SHOW COLUMNS FROM browsing_histories";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
$$row['Field'] = $_SESSION["\$row['Field']\"]."<br>";
}
?>
请记住,因为列名称如下所示:id、用户名、性别。
然后,目前我得到了冗长的文件, session 写成这样:
<?php
$id = $_SESSION["id"];
$username = $_SESSION["username"];
$gender = $_SESSION["gender"];
?>
我不想编写这样的 session 行来缩小文件大小,因此需要编写代码,以便脚本获取列名称并在这些获取的列名称(或获取的标签或获取的字段)下创建 session 变量)。 简而言之,在上面提到的冗长代码中,您会看到一个名为“id”的变量,并且会看到一个 session 名称“id”。我不想在这里输入所有这些“id”,因为它是一个列名称,我希望脚本自动写入列名称。 最好,从列名创建数组值,那么如何做到这一点呢?
同样,我不想输入所有这些“id”,因此希望脚本通过获取列字段名称来编写它们,因为这里的列字段名称是“id”。你知道我想做什么。那么,想展示一下如何做到这一点的代码示例吗?
我需要一个使用 mysqli 的程序风格的示例。还没有进入 pdo 或 oop。
编辑: 第一次尝试失败:
$sql = "SHOW COLUMNS FROM users";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
${$row['Field']} = $_SESSION["{$row['Field']}"]."<br>";
}
第二次尝试失败:
$sql = "SHOW COLUMNS FROM users";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
$row = $_SESSION["{$row['Field']}"]."<br>";
}
最佳答案
您的 $$row 变量前面有一个额外的 $$
关于php - 如何创建以Mysql表列名命名的 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49635012/