2013-01-24 41 views
1

我疑難解答PHP錯誤,我不知道如何解決它。我沒有任何PHP知識。PHP嚴格的標準:非靜態方法致命:: dbError()

下面是代碼:

function _act($sql) { 
    if (!$this->_link) { 
     Fatal::internalError('Tried to make database query before connection.'); 
    } 

    $r = mysql_query($sql, $this->_link); 

    if ($r === false) { 
     Fatal::dbError($sql, "Database query failed", mysql_error()); 
    } 
    return $r; 
} 

在錯誤日誌中我得到以下幾點:

[1月24日2013年13點25分38秒美國/丹佛] PHP嚴格的標準:非靜態方法致命:: dbError()不應該被靜態調用,假設$這個從線/home1/flcclear/public_html/Library/classes/Query.php不兼容的情況下91

我有試圖用$r->mysql_error();作爲對象調用,但是這導致了一個不同的錯誤。我不想重寫這段代碼,只是爲了糾正一個沒有錢的志願者時間的小學/中學的錯誤。

在此先感謝。

+0

但是錯誤信息指的是「Fatal :: dbError」而不是「mysql_error」。 –

+0

不要再使用'mysql'擴展名了。閱讀http://php.net/en/mysql-connect – KingCrunch

+0

@KingCrunch的問題不是什麼「使用」 問題是關於失敗的,添加註釋,你的反應可能是有用的,但抵不住首先讓他可以解決問題。謝謝。 –

回答

1

使致命:: InternalError該,法塔:: dbError靜態的(還有其他您使用的是像 「致命::方法名」 的方法)

例如:

class Fatal 
{ 
    public static dbError($sql,$message){ 
    //method body 
    } 
} 
0

但錯誤消息指Fatal::dbError而不是mysql_error

Fatal::dbError是專爲您設計的課程嗎?試試這個:

Class Fatal{ 
    ... 
    static public dbError(...){...} 
    ... 
} 
相關問題