php - 如何创建以Mysql表列名命名的 session ?

标签 php mysql

我必须在每个页面上复制并粘贴这么长的 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/

相关文章:

php - 向mysql数据库插入多行

javascript - 我想在表中显示以下数据

php - 以编程方式运行 PHP Selenium Webdriver 测试,无需 phpunit 命令

PHP/MYSQL 过期删除数据

mysql - 我可以查询具有符合特定条件的多个关联记录的记录吗?

python - 尝试在 django 中迁移 mysql 数据库时出现 ConnectionDoesNotExist 错误

mysql - 使用内连接时在 MYSQL 结果上重复

PHP 方法来查找 Web 服务器的临时路径?

javascript - 如何制作表单以使用 AJAX/jQuery/JavaScript 提交?

php - codeigniter 转义查询