这就是我的表在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()-获取结果数据