首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非静态方法DB::connect()不应静态调用

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

Stack Overflow用户
提问于 2013-07-19 22:18:59
回答 1查看 7.2K关注 0票数 5

最近,我们的服务器升级到5.4,并开始收到以下错误

代码语言:javascript
复制
Non-static method DB::connect() should not be called statically

我研究过这个问题,提出的每一个解决方案都不起作用。我已经尝试在文件级别、目录级别和服务器级别关闭严格的错误报告。浏览器中出现的实际错误是:

代码语言:javascript
复制
DB Error: connect failed module: /path/to/login_class.php line: 49

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

代码语言:javascript
复制
<?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上的一个数字。什么都没有。

APPENDMENT:为了让我们清楚,对于那些要求我“学习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

错误信息严格标准:不应在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

对于更多的人来说,他们在这个问题上没有得到任何答案,这将与这种特殊的情况相关,并且比其他任何事情都更多地窥探和推动他们过时的代码。

让我把它放在你身上。我已经降级到PHP5.3,因此错误不再出现。一切都很好。但是,对于这个问题,需要有某种答案,这在所有的嘲笑和指点中都被忽略了,并且快速地“呃.关闭错误报告”(这不起作用),以及关于声明为一个非静态变量(derr)的非具体注释。没有$@#!伙计们。如果事情就这么简单的话,我甚至不会把这个贴在Stack上。

为了我自己的利益?不再是了。但事实是,会有许多人寻找答案,但他们不会在其他地方找到答案。我希望这里有人能找到解决办法。如果不是,相信我,我不会因为这件事而失眠的。

EN

回答 1

Stack Overflow用户

发布于 2013-07-19 22:26:28

抱歉伙计,

但是珀尔已经过时了,或者他的继任者是MDB2,考虑升级到类似于

关于细节..。PDO

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17756379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档