php - SQL错误。 SESSION不能具有SELECT的主键-LMLPHP

这就是我的表在phpMyAdmin中的显示方式。我有一个登录脚本,当登录详细信息与组的匹配时,它将初始化查询中组的所有$ _SESSION变量,但如果尝试登录脚本,

isset($_SESSION['group_id'])


它返回false。下面是登录功能。
请注意,group_id是自动递增的主键

public static function Login($username, $password, $conn)
    {
        if(!isset($conn))
            die("Database connection not established");

        //Try logging in as a user first
        $sql = 'SELECT * FROM qn_users WHERE u_email="'. $username .'" and u_pass="'.md5($password).'" ;';
        $sqlval = mysql_query($sql, $conn);
        if(mysql_num_rows($sqlval) == 1)
        {
            session_start();
            $_SESSION['type'] = "user";
            $_SESSION['email'] = $username;
            $_SESSION['name'] = $sqlval['u_name'];
            $_SESSION['score'] = $sqlval['score'];
            mysql_free_result($sqlval);
            return 1;
        }
        mysql_free_result($sqlval);

        //Now try to log in as group
        $sql = 'SELECT * FROM qn_groups WHERE group_email="'. $username .'" and group_pass="'.md5($password).'" ;';
        $sqlval = mysql_query($sql, $conn);
        if(mysql_num_rows($sqlval) == 1)
        {
            session_start();
            $_SESSION['type'] = "group";
            $_SESSION['email'] = $username;
            $_SESSION['name'] = $sqlval['group_name'];
            $_SESSION['noOfUsers'] = $sqlval['noOfUsers'];
            $_SESSION['group_id'] = $sqlval['group_id'];
            mysql_free_result($sqlval);
            return 1;
        }
        mysql_free_result($sqlval);
        return 0;
    }


$ conn是mysql连接

$conn = @mysql_connect(dbdetails here) or die();


建立连接。这在网站上很明显,但是当我作为一个组登录后,似乎没有设置group_id。当组添加用户时,我需要使用group_id,但是当我为它运行sql时,我发现$ _SESSION ['group_id']中没有任何内容。

最佳答案

注意:在PHP 5.5.0中不推荐使用mysql,在PHP 7.0.0中已将其删除。建议将mysqli。*或PDO与已准备好的语句一起使用。


所有条件您所做的都正确。为了保存/显示从数据库中显示的值,您必须使用mysql中可用的任何一种方法。

必须使用以下任何一种方法。

mysql_fetch_array()-以关联数组,数值数组或两者兼有的方式获取结果行

mysql_fetch_assoc()-获取结果行作为关联数组

mysql_fetch_object()-获取结果行作为对象

mysql_data_seek()-移动内部结果指针

mysql_fetch_lengths()-获取结果中每个输出的长度

mysql_result()-获取结果数据

09-12 15:13