将MySQL行保存在数组中并将其保存在会话变量中

时间:2013-11-18 21:12:42

标签: php session-variables associative-array

我想从MySQL数据库中获取行并在$ _SESSION变量中保存两个特定值(row [0]& row [6])以供稍后进行比较。 代码如下所示:

        $sqlResult =mysql_query("SELECT * FROM questionbank WHERE quizName ='$quizNames' ORDER BY RAND() limit 6")

    while ($row= mysql_fetch_array($sqlResult)) 
            {
                $questionPkId = $row[0];                    
                echo $_SESSION['$questionPkId'] = $row[6];

            }

问题是我无法在其他页面中获取此值。我可以用会话变量创建一个关联数组(虽然我尝试了array_push(),但它没有用)。

2 个答案:

答案 0 :(得分:2)

您的代码有几个问题。首先,请确保在使用会话的任何页面上调用session_start。没有它,您将无法访问先前设置的变量。

第二,当在单引号内调用一个变量时,它是字面意思的,这意味着你的会话定义语句总是将变量赋值给同一个东西,因此会覆盖它应该是什么。

$_SESSION[$questionPkId] = $row[6];

这会将值分配给$questionPkId的实际值。除了这些问题之外,您的session项应该有效,如果不是,则需要向我们提供更多代码。

答案 1 :(得分:0)

尝试不带单引号:

$_SESSION[$questionPkId] = $row[6];