PHP 严格标准:非静态方法 致命::d bError()


PHP Strict Standards: Non-static method Fatal::dbError()

我正在解决PHP中的错误,但我不知道如何解决它。我没有任何PHP知识。

这是代码:

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;
 }

在错误日志中,我得到以下内容:

[2013 年 1 月 24 日 13:25:38 美国/丹佛] PHP 严格标准:非静态方法 Fatal::d bError() 不应静态调用,假设$this来自/home1/flcclear/public_html/Library/classes/Query.php 第 91 行的不兼容上下文

我试图用$r->mysql_error();使其成为对象调用,但这导致了不同的错误。我不是想重写这段代码,只是想纠正一所小学/中学的错误,这等于没有钱,志愿者时间。

提前谢谢。

将 Fatal::internalError,Fata::d bError 设为静态(也是您使用的其他方法,如 "Fatal::methodName")

例:

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

但错误消息指的是Fatal::dbError而不是mysql_error

Fatal::dbError为您设计的课程?试试这个:

Class Fatal{
  ...
  static public dbError(...){...}
  ...
}