我正在PHP中開發一個站點。當用戶會話開始時,我加載了$ _SESSION var中的所有db行。當用戶更改數據庫值時,我也更新$ _SESSION變量。所有會話之間用戶數據的一致性
問題開始時多個會話是用於相同的用戶活動的。有沒有辦法更新同一用戶的所有會話的數據而不會超載數據庫?或者,或者,有沒有辦法強制PHP使用相同的會話文件,屬於同一用戶的所有會話?或者每次會話繼續時,我都必須簡單地查詢數據庫?
另一個困境是:它值得嗎?我的意思是,我不知道這個機制可以減輕服務器負載多少,我不知道這種機制是否適用於基於文件的會話,或者我必須使用另一個會話存儲類型。
這個問題具有一定的相關this other question on mine(即使這種情況的解決方法是簡單地刪除所有會議文件)。
如果數據存在於數據庫中,則無需每次都通過會話進行傳輸。您只需要在會話中保存的記錄用戶。比方說,用戶登錄後,他更新了他的頭像或與他的user_id相關的內容。爲什麼你需要在$ _SESSION中保存$ row ['avatar'],當你每次都可以通過''SELECT用戶ID = $ _SESSION ['user_id']「' –
@RoyalBg來訪問它時,調用數據庫,如果你保存了這樣的數據,請閱讀SESSION – djot
完全@RoyalBg,你需要使用'user_id'更新數據庫中的evrything,然後如果你需要更新電子郵件或用戶名,然後更新到db然後再更新保存更新後的電子郵件或用戶名到會話 –