如何在Mysql表列命名后创建会话命名?

时间:2018-04-03 16:33:52

标签: php mysql

我不得不复制&在每个页面上粘贴这么长的会话列表,如home.php,notices_list.php,histories.php,make_post.php,edit_post.php等。 我需要缩短这段代码,以便缩小每个文件的大小。

我将会话变量标记在我的MySQL表列名后面,因此,如果我为脚本编写了一段代码来获取列名,然后根据列名创建会话,那么代码会缩短很多每页。因此我的Web服务器将占用较少的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,username,gender。

然后我现在开始阅读冗长的文件,会议内容如下:

<?php 
$id = $_SESSION["id"];
$username = $_SESSION["username"];
$gender = $_SESSION["gender"];
?>

我不想写这样的会话行来减小文件大小,因此需要编写代码,以便脚本获取列名并在这些获取的列名(或获取的标签或获取的字段)下创建会话变量)。 简而言之,在上面提到的冗长代码中,您会看到名为“id”的变量,并且您会看到会话名称“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>";
}

1 个答案:

答案 0 :(得分:0)

你的$$行变量还有额外的$$