如何 select 来自 SQL 的多条记录并插入会话

How to select multiple records from SQL and insert into a Session

我正在寻找如何将 SQL table 中的多条记录插入到会话变量或多个唯一会话变量中。

$userID = $_SESSION['user']['id']; 

$coursequery = " 
            SELECT
                coursename,
                location,
                description 
            FROM courses 
            WHERE 
                teacherID = '$userID' 
        "; 

        try 
        { 
            $stmt = $db->prepare($coursequery); 
            $result = $stmt->execute(); 
        } 
        catch(PDOException $ex) 
        {  
            die("Failed to run query: " . $ex->getMessage()); 
        } 

        $row = $stmt->fetch(); 

            $_SESSION['courseinfo'] = $row;   

table"courses"里面有几条记录,teacherID都是当前userID,开头定义的。当我 print_r($_SESSION['courseinfo']);它只显示 table.

中的一条记录

我正在尝试创建一个循环来显示每条记录所抓取的所有信息,因为您无法确定在任何给定时间将抓取多少条记录。非常感谢任何答案!

$userID = $_SESSION['user']['id']; 

$coursequery = " 
            SELECT
                coursename,
                location,
                description 
            FROM courses 
            WHERE 
                teacherID = '$userID' 
        "; 

        try 
        { 
            $stmt = $db->prepare($coursequery); 
            $result = $stmt->execute(); 
        } 
        catch(PDOException $ex) 
        {  
            die("Failed to run query: " . $ex->getMessage()); 
        } 

        while ($row = $stmt->fetch()):

         $row['YourColumn'];

         endwhile;

使用 while() 循环根据您的查询获取所有记录

您可以通过更改 fetch -> fetchAll() 来获取所有记录 doc

$rows = $stmt->fetchAll(); 

会话还可以存储数组和对象(它们会自动序列化)。因此,您可以将整个结果集存储在那里。

$_SESSION['courseinfo'] = $rows;

旁注:考虑为所有返回的数据使用另一个存储位置,如果它很多,并且在会话中仅存储 ID。