php - 不应静态调用非静态方法 DB::connect()

标签 php warnings

最近将我们的服务器升级到 5.4 并开始出现以下错误

Non-static method DB::connect() should not be called statically

我对此进行了上下研究,提出的每个解决方案都没有奏效。我试过在文件级别、目录级别和服务器级别关闭严格的错误报告。浏览器中出现的实际错误是:

DB Error: connect failed module: /path/to/login_class.php line: 49

编辑:发布 lib_app.php 的完整代码:

<?php
/*--------------------------------------------------------------------------

 $RCSfile: lib_app.php,v $ 

 Purpose:   Defines App class. This class is a container for 
            application global variables such as database 
            connection.

 Copyright: 2003 ** Author Omitted **

---------------------------------------------------------------------------
    Functions:

    - none

    Classes:

        App - global application class, holds global variables  

---------------------------------------------------------------------------         
 $Log: lib_app.php,v $
 Revision 1.1.1.1  2004/08/05 23:50:39 ** Author Omitted **



--------------------------------------------------------------------------*/

if (!defined('PHP_APP')) 
    die('<br>'.__FILE__.': This program cannot function without application framework<br>');


class App{

    var $dsn;                           // db connection string
    var $db;                            // db connection object
    var $state;                         // application status
    var $debug =  CONFIG_DEBUG;         // debug status

    function App($dsn){

        $this->dsn  = $dsn;
        $this->db   = DB::connect($dsn);

        if (DB::isError($this->db)) {

            die($this->db->getMessage() . ' module: ' . __FILE__ . ' line: ' .  __LINE__ );
        }
    }   
} // class
?>

请问,有没有人解决过这个问题,能够提供帮助?我引用了许多其他网站,包括 Stack 上的一些网站。纳达。

附录:我们很清楚,对于那些要求我“学习 PDO”或“埋葬这个遗物并在上面撒些盐”的仇恨者,虽然搞笑和感谢,请注意这不是我的代码。这实际上是一个可能应该被埋葬的遗物。然而,它是一个后端客户管理程序,它“附带”了一个客户,我们为客户设计和编写了很多前端的东西,他们特别要求不要触及管理区域。如果我没有得到报酬,我不会重写整个该死的东西,但非常想为那里的更多人解决这个问题:

http://pear.php.net/bugs/bug.php?id=12057

http://forums.devshed.com/php-development-5/non-static-method-db-connect-should-not-be-called-statically-462291.html

http://php.brickhost.com/forums/index.php?topic=10756.0

Error message Strict standards: Non-static method should not be called statically in php

http://forums.phpfreaks.com/topic/265563-help-me-non-static-method-db/

http://forums.codewalkers.com/pear-packages-47/non-static-method-warnings-php-5t-4796.html

对于那些收到零答案的人来说,与这种特定情况相关,并且比其他任何事情都更关心和刺激他们过时的代码。

让我把它放在你身上。我已经降级回 PHP 5.3,所以错误不再出现。一切正常。但是需要对这个问题有某种答案,这个问题在所有的笑声和指点中都被遗漏了,还有快速的“呃......关闭错误报告”(这不起作用),以及关于声明为非静态变量 (derr)。没有$@#!伙计们。如果真的这么简单,我什至不会在 Stack 上发布它。

为了我自己的利益?不再。但事实是,会有很多人在寻找这个问题的答案,而他们在别处找不到。我希望这里有人可以找到解决方案。如果没有,请相信我,我不会为此失眠的。

最佳答案

对不起,伙计,

但是 pearl 它已经过时或者他的继任者是 MDB2 , 考虑升级到 PDO insted 之类的东西

详情... PDO

关于php - 不应静态调用非静态方法 DB::connect(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17756379/

相关文章:

Java:局部变量已初始化,仍然出现错误

php - 引用 - 这个错误在 PHP 中意味着什么?

php - 如何在 PHP Nusoap 中解决 "XML error parsing SOAP payload on line 1: Invalid document end"

php - 插入使用同一行(相同的主键)mysql php pdo

warnings - 从 'id<AVAudioPlayerDelegate>' 分配给 'Class' 的不兼容指针类型

c++ - 找不到 PDB 'vc100.pdb'

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

javascript - 滚动时新的 ajax 请求

php - PDO、AES_ENCRYPT 和 MySQL

php mysql视频上传无法成功运行