2011-08-30 139 views
0

我想填充我的$ _SESSION陣列與剛登錄的相關用戶的所有DB數據。PHP MYSQL存儲會話數據,質疑

像DB「FIRST_NAME」將是$ _SESSION [「FIRST_NAME 「];

正確的做法是什麼?

$ _SESSION = $ result_set; // $ result_set從DB

所獲取的陣列(在行0未知())

在此先感謝墓內的錯誤!

回答

3

我想填充我$ _SESSION陣列與剛登錄的相關用戶的所有DB數據。

不要這樣做。只存儲會話中的行ID,並在需要某些信息時執行數據庫請求。

在會話中存儲此信息是完全多餘的,並且如果用戶更改數據庫中未反映在會話變量中的某些內容,則可能會導致過時的數據。

+0

好的,實際上是想保存我的服務器一些額外的數據庫訪問 – Ted

+0

@泰德是的。在這種情況下這是不值得的,如果數據庫被正確索引和全部索引,它不會成爲太大的負擔。 –

+0

忘了提及這是一個用戶更新個人數據的頁面...... – Ted

1

您需要爲要存儲的數據指定一個名稱 - 不能完全覆蓋$ _SESSION變量。

EG:

$_SESSION['user_id'] = $result_set->id; 

正如佩卡說,有很少存儲整個用戶配置文件的會話時,你可以做一個單獨的數據庫調用後收集這些數據的需求。