關于臨時表的檔案說,當連接和會話關閉時,本地臨時表會自動洗掉。
但是PHP不是這樣作業的嗎?我想要保留的任何變數(對于單個用戶)我需要保留在會話變數中。PHP 中的會話何時關閉?有沒有我需要避免的特定宣告,所以我不會洗掉我的臨時表?
uj5u.com熱心網友回復:
“資料庫會話”和“PHP 會話”之間沒有鏈接,也沒有辦法建立這樣的鏈接。
“資料庫會話”的作業方式是這樣的:
- 用戶請求頁面 - 輸入 URL、單擊鏈接、提交表單等
- 用戶的瀏覽器向您的服務器發送 HTTP 請求
- 你的 HTTP 服務器啟動一個新的 PHP 行程或執行緒來處理請求
- 該 PHP 行程或執行緒創建到資料庫服務器的新連接(“資料庫會話”)
- 您執行一些 SQL,它可以利用該連接中的臨時表
- 當您完成此請求所需執行的操作后,PHP 行程或執行緒將被清理
- 如果您尚未關閉它,您的資料庫連接將在此處關閉
- 如果您尚未洗掉連接中的所有臨時表,它們現在將被洗掉
同時,“PHP 會話”的作業方式如下:
- 用戶的瀏覽器向您的服務器發送 HTTP 請求
- 你的 HTTP 服務器啟動一個新的 PHP 行程或執行緒來處理請求
- 該 PHP 行程或執行緒從請求中讀取一個 cookie 值,并在某個存盤(默認情況下,一個檔案)中查找具有該 ID 的會話
- 然后,您可以讀取和寫入與該會話 ID 關聯的資料
- 當您完成此請求所需執行的操作后,PHP 行程或執行緒將被清理
請注意,您永遠不會選擇使用哪個資料庫連接,也不會在請求之間以任何方式“存盤”它。
如果您希望資料在請求之間持久存在,則需要將其存盤在臨時資料庫表以外的位置 - 永久資料庫表或序列化到 PHP 會話中的 PHP 變數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/513233.html
標籤:phpsql服务器会议
下一篇:for回圈中的JS超時
