[英]How to use mysqli persistent connection across different pages
我有一個使用不同PHP
頁面來處理代碼的Web應用程序。
在每個頁面的頂部,我打開一個mysqli
連接到同一個數據庫(使用相同的用戶/密碼):
$link = mysqli_connect("$mysql_server", "$mysql_user", "$mysql_pw", "$mysql_db");
if (!$link) {
die('Could not connect: ' . mysql_error());
}
我理解使用單個持久連接更好。 如何在所有頁面上啟用此功能?
是否只需使用$link = mysqli_connect("p:" . $mysql_server, "$mysql_user", "$mysql_pw", "$mysql_db");
第一次連接?
在什么情況下這種關系會關閉?
$db = mysqli_connect("p:notlocalhost","notroot","","catalog") or die("Error " . mysqli_error($link));
它是“p:” - 當在主機名之前添加時,創建持久連接。 后來在不同的頁面上重復使用。 你仍然在每個頁面上調用相同的構造函數。
你不明白持久連接的含義。 沒有人說你可以在頁面上使用一次創建的PHP資源 ,這肯定是不可能的。 持久連接對PHP-DBMS互連具有內在的技術意義,不會以任何方式影響您的代碼。
為避免在不同的頁面上編寫相同的代碼,您可以使用include
運算符來包含某種帶有所有常用代碼和設置的引導程序文件,包括數據庫連接代碼。
至於持久連接 - 避免它一段時間,因為如果在沒有知識的情況下使用它會帶來更多弊大於利。
另請注意,您永遠不應使用引號來處理變量。 $mysql_user
是一個變量,但"$mysql_user"
是一個不相同的字符串 。
腳本執行結束后非持久連接關閉。
打開持久連接時,請求SQL服務的每個后續頁面都可以重用與SQL Server相同的已建立連接。
簡而言之,對於您必須連接的每個請求。
恕我直言,如果可能的話,使用PHP的SPL的PDO庫進行數據庫連接。 通過使用其准備好的語句,您可以排除SQL注入。
查看波紋管鏈接中的單例示例,以獲得最簡單的實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.