2015-12-15 71 views
1

我從第二個PHP文件調用一個函數,我想避免再次創建數據庫連接。我正在使用此代碼,但它不起作用。將SQL數據庫連接傳遞給PHP函數

$Db = mysqli_init(); 
$Db->options(MYSQLI_OPT_LOCAL_INFILE, true); 
$Db->real_connect($servername, $username, $password, $dbname, 3306); 
$connection = $Db->real_connect($servername, $username, $password, $dbname, 3306); 

CheckTableMetrics($connection, $dbname, $table1, $table2, $metric1, $metric2, $date1, $date2, $start_date, $end_date); 

我出錯了。如果我把我的代碼的第一部分放在包含函數一切正常的PHP文件中。

的錯誤,我得到:一個無效的對象或資源的mysqli

調用一個成員函數FETCH_ASSOC():

的mysqli ::查詢()非對象

該代碼工作正常,如果我j烏斯特把:

$Db = mysqli_init(); 
$Db->options(MYSQLI_OPT_LOCAL_INFILE, true); 
$Db->real_connect($servername, $username, $password, $dbname, 3306); 

這是最好的辦法嗎?

+2

不工作..我**喜歡**這樣的問題。我們怎麼神奇地應該知道爲什麼它不起作用?打開錯誤報告並嘗試調試您的代碼? – Naruto

+2

什麼是'它不工作'? –

+0

嘗試使用http://php.net/manual/en/class.pdo.php –

回答

4

你的問題很簡單:

$connection = $Db->real_connect($servername, $username, $password, $dbname, 3306); 

這是不對的。 real_connect()返回布爾標記成功或失敗,而不是連接的數據庫對象。相反,你應該發送$Db到你的功能,它會一切工作。

+1

好斑 - 完全錯過了 – Steve

+0

好。非常簡單! –

+1

簡單的問題往往最難找到:) – TwoStraws