【问题标题】:How to use mysql sessions to store and reuse data from specific query for additional queries?如何使用 mysql 会话来存储和重用来自特定查询的数据以进行其他查询?
【发布时间】:2026-02-23 22:35:02
【问题描述】:

我正在自学如何使用 mysql 和 php 创建一个简单的交互式网站。这仅供内部使用,我不太关心安全性。目前我的数据库由两个表组成,teacher_user 和 student_user。

教师用户登录后,我将他们在在线表格中填写的内容与存储在数据库中的内容进行比较。如果它们在数据库中匹配,教师可以继续进入网站。 php代码的实质是:

$sql="SELECT * FROM teacher_user WHERE username='$username' and password='$password'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
// Register $username, $password and redirect to file "login_success.php"
session_register("username");
session_register("password");
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}

然后在我拥有的每个 html 页面上:

<?
session_start();
if(!session_is_registered(username)){
header("location:main_login.php");
}

我的问题与教师用户及其使用用户名和密码的初始登录有关。我想在网站的所有页面上存储他们的用户名,并能够在 student_user 表上调用他们的用户名进行查询。 student_user 表和teacher_user 表都包含教师的用户名。

我想通过教师的用户名查询 student_user 表,以便生成特定教师教室中的学生的查询结果。

我曾多次尝试将教师的 $username 保存到 ".$_session['username'] 会话中,但似乎无法让它在任何后续页面上回显教师的用户名作为测试。

我正在尝试做的事情可能吗?如果是这样,有没有人可以分享一个简单的例子?

【问题讨论】:

    标签: php mysql session


    【解决方案1】:

    是的,有可能,session_register 函数现在已弃用,只需随意使用会话变量,如下所示:

    $_SESSION['username'] = $username;
    

    一旦验证了用户名和密码,这样在您使用session_start() 的每个页面中,您的变量就会在那里。

    编辑:

    具体来说,

    $_SESSION['username'] = $username; 
    

    进入

    if($count==1){
    

    条件。

    【讨论】: