2013-09-20 2 views
0

Мне нужен объект сеанса для такого типа соединений, по-моему, не работает с моим текущим подключением, есть ли какой-то конкретный способ работы с моим подключением. Вот код:Есть ли определенный сеанс для такого типа соединений PHP

соединения:

$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']; сеанс не запускается. Есть ли еще один сеанс, который нужно создать или почему этот сеанс не работает с моим текущим подключением?

+1

Я не вижу связи между приведенным выше кодом (который касается установления соединения с базой данных) и приведенным ниже кодом (что касается сеансов). Что вы подразумеваете под «кажется, что не работает», что вы пытаетесь сделать? –

+0

Получаете ли вы '__PHP_Incomplete_Class_name'? Если это так, я рекомендую прочитать [это] (http://php.net/manual/en/oop4.serialization.php). –

+0

Когда я пытаюсь войти в систему как $ loggedInUser = $ _SESSION ['userSession']; сеанс не запускается –

ответ

1

Сохранение объекта в $_SESSION вызывает сериализацию и десеризацию. Для обычных объектов это работает, если определение класса включено до десериализации объекта.

Однако mysql поддерживает состояние подключения к базе данных, которое не выдержит процесс. Для каждой новой страницы требуется новое соединение для построения, поэтому вы не можете сохранить соединение mysql в $_SESSION.

Ваше решение должно хранить параметры подключения к базе данных и воссоздавать соединение в верхней части каждой страницы.

+0

не похож на то, что он делает со мной –

+0

У меня нет четкой идеи, что ** он делает. Это мое лучшее предположение. –

+0

, поэтому вы отвечаете, а не голосуете, чтобы закрыть, как неясно, каждый на свой собственный :-) –

Смежные вопросы