2016-02-08 85 views
0

我有一個PHP文件,連接到MySQL數據庫 訪問它們:組連接mysql的PHP和使用來自多個PHP函數

$mysqli = mysqli_connect("localhost","user","pass","db"); 

而就在同PHP的,也有做了一些功能使用該連接,並使querys ...

我不知道如何設置$庫MySQLi到整個PHP和從函數調用它,而不是重複在每個功能的連接...

(我有3個功能,我需要重複connec的代碼在每個函數上,最後,3個連接到同一個數據庫。我想避免這種情況,並建立一個連接,並使用它的3個功能,而不再建立另一個連接。

有什麼辦法嗎?

感謝

回答

2

還有得是受騙者,但這裏有兩種方式:

它傳遞到函數:

$mysqli = mysqli_connect("localhost","user","pass","db"); 
$something = test($mysqli); 

function test($conn) { 
    mysqli_query($conn, 'stuff); 
} 

或訪問全局變量:

function test() { 
    mysqli_query($GLOBALS['mysqli'], 'stuff'); 
} 
1

你需要讓你的功能看起來像

function something(){ 
    global $mysqli; 
    // Rest of function 
    } 

這是你能做的只是一種方法這個

-1

你可以有一個單獨的PHP模塊,「包裝」您的mysqli調用。

function Sql_Query($query) { 

$result = mysqli_query($database_connection, $query); 
if (Sql_Check_Error($database_connection)) 
    dbg("Sql error in $query"); // Some debugging code 
} 
return $result; 

}

哪裏Sql_Error_Check又是一個 「包裝」 mysqli的電話,等...

這是一個全球性的。

$database_connection = Sql_Connect($database_host,$database_user,$database_password,$database_name); 

還有一個更好的面向mysqli的面向對象。 http://php.net/manual/en/mysqli.quickstart.dual-interface.php

+1

調用每個查詢的功能,那就是即使最壞的情況,您連接每次你做一個查詢 – uchi

+0

我自己的代碼實際上非常像@ AbraCadaver的時間 - 我在簡化在這裏,以避免解釋其中GLOBAL是。 – BryanT