2015-07-04 55 views
0

我是PHP的新手,並且遇到了一些我正在編寫的代碼,我已經能夠解決許多問題。但是,一個問題似乎永遠不會消失。我不斷收到錯誤消息Fatal error: Non-static method mysqli::select_db() cannot be called statically。錯誤指向的代碼將在下面。如果任何人有解決這個問題,以及解釋,這將是最有幫助的。被稱爲靜態的非靜態方法PHP

$db_selected = mysqli::select_db($link, DB_NAME); 

if (!$db_selected) { 
    die('Can\'t use ' . DB_NAME . ': ' . mysql_error()); 
} 

編輯

其他堆棧兌換的問題是不是這個情況有所幫助。向我解釋我的問題是低級別的事實並沒有幫助,因爲我已經瞭解並承認了上述情況。

+0

錯誤信息是明確的,因爲它可以。你可以靜態的方式調用一個非靜態方法(一個對象內部的函數)(所以沒有對象)。這是行不通的。 – arkascha

+1

您是否甚至想到單看文檔? http://php.net/manual/en/mysqli.select-db.php它不僅可以解釋所有細節,還可以顯示清晰簡單的示例。你還需要什麼? – arkascha

回答

0
$db_selected = mysqli_select_db($link, DB_NAME); 

if (!$db_selected) { 
    die('Can\'t use ' . DB_NAME . ': ' . mysql_error()); 
} 

你試圖調用一個不可用的函數,你必須選擇一個像上面那樣的數據庫。

編輯:
但我建議只選擇了數據庫,當你實例化這樣的連接:

$mysqli = mysqli_connect('HOST', 'USEER', 'PASS', 'DB'); 
+0

這將是程序風格。它看起來像OP不希望那樣。他尋找OOP風格。 – arkascha

+1

謝謝!我很抱歉,這是一個非常愚蠢的問題,我很感謝有人回答這個問題,而不是評論說愚蠢...... :) –

+0

@SamK不知道如何工作,並要求罰款。沒有問題是愚蠢的。但是,當你遇到問題時,不要閱讀文檔是你應該考慮的問題...... – arkascha