1

我正在对 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;
 }

在错误日志中,我得到以下信息:

[24-Jan-2013 13:25:38 America/Denver] PHP 严格标准:非静态方法 Fatal::dbError() 不应静态调用,假设 $this 来自 /home1/flcclear/public_html/Library 中的不兼容上下文/classes/Query.php 第 91 行

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

提前致谢。

4

2 回答 2

1

使 Fatal::internalError,Fata::dbError (以及您正在使用的其他方法,例如“Fatal::methodName”)静态

例子 :

class Fatal
{
    public static dbError($sql,$message){
    //method body
    }
}
于 2013-01-24T21:36:58.283 回答
0

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

Fatal::dbError是为你设计的课程吗?尝试这个:

Class Fatal{
  ...
  static public dbError(...){...}
  ...
}
于 2013-01-24T21:37:19.473 回答