簡體   English   中英

如何跨不同頁面使用mysqli持久連接

[英]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注入。

查看波紋管鏈接中的單例示例,以獲得最簡單的實現。

http://www.php.net/manual/en/class.pdo.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM