簡體   English   中英

SQL錯誤。 SESSION不能具有SELECT的主鍵

[英]SQL error. SESSION can't have primary key from SELECT

表qn_groups

這就是我的表在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']中沒有任何內容。

注意: mysql的用法在PHP 5.5.0中已被棄用,在PHP 7.0.0中已被刪除,建議將mysqli。*或PDO與准備好的語句一起使用。

所有條件您所做的都正確。 為了保存/顯示從數據庫中顯示的值,您必須使用mysql中可用的任何一種方法。

必須使用以下任何一種方法。

mysql_fetch_array() -提取結果行為關聯數組,數字數組或兩者

mysql_fetch_assoc() -獲取結果行作為關聯數組

mysql_fetch_object() -獲取結果行作為對象

mysql_data_seek() -移動內部結果指針

mysql_fetch_lengths() -獲取結果中每個輸出的長度

mysql_result() -獲取結果數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM