php 5.2,autoload试图在主机上加载PDO.php,在本地工作正常

时间:2013-10-02 06:19:02

标签: php mysql pdo

顾名思义,我的db类尝试自动加载PDO.php时遇到问题

class DBObject extends PDO
{
    public function __construct( $config ) 
    {
        $conn = "mysql:host=" . $config['host'] . ";dbname=" . $config[ 'dbname' ];


        try
        {
            parent::__construct( $conn, $config['user'], $config['password'] );
            $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }  
        catch(PDOException $e) 
        {
            echo $e->getMessage();  
        }  
    }}

这在本地工作正常。

自动加载功能:

function autoload( $className ) 
{
    $filename = str_replace("_", DIRECTORY_SEPARATOR, $className ) . '.php';

    require_once( $filename );
}
spl_autoload_extensions('.php');

// Use default autoload implementation
spl_autoload_register("autoload");
没什么好看的。

奇怪的是这是网站的前端工作 - 没有错误,一切都显示正常,所有数据库访问都有效,但是当我进入临时服务器的后端时(我工作的公司制作的自定义cms,它使用mysql_ *)它在我加载模型时尝试在自动加载器中加载PDO.php。

我能想到的唯一问题是导致问题的是,使用DBObject的类是在函数内实例化的,但即便如此,这只是一个猜测,也是一个长镜头。没有什么花哨的事情,没有神奇的方法,没有名称空间,没有其他自动加载功能

因为我坚持使用php 5.2.7没有命名空间,所以我在这里找到的其他线程都没有帮助。

根据phpinfo,安装了PDO,用于MySQL的PDO驱动程序,客户端库版本5.0.96

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

好的,所以我想通了。在cms目录中有一个php.ini文件,注释掉整个文件没有用 - 我必须删除它,一切都像在本地一样工作。