0

对于这些类型的连接,我需要一个会话对象,我的连接似乎不适用于我当前的连接,是否有一个特定的连接可以用于我的连接。这是代码:

联系:

$conn = mysql_connect(db_server, db_user, db_pass);

if (!$conn)
die("Could not connect: " . mysql_error());

mysql_select_db(db_name, $conn);

这是我当前的会话对象,但它似乎不适用于这种类型的连接。这是代码:

会议:

session_start();

//Global User Object Var
//loggedInUser can be used globally if constructed
if(isset($_SESSION['userSession']) && is_object($_SESSION['userSession']))
{
    $loggedInUser = $_SESSION['userSession'];
}

当我尝试以 $loggedInUser = $_SESSION['userSession']; 身份登录时 会话没有开始。是否需要构建另一个会话,或者为什么此会话不适用于我当前的连接?

4

1 回答 1

1

将对象存储在$_SESSION其中会导致它被序列化和反序列化。对于常规对象,如果在反序列化对象之前包含类定义,则此方法有效。

但是,mysql维护数据库连接的状态,该状态不会在该过程中继续存在。每个新页面都需要建立一个新连接,因此您不能将mysql连接存储在$_SESSION.

您的解决方案是存储数据库连接参数并在每个页面的顶部重新创建连接。

于 2013-09-20T02:48:05.677 回答