无法重新声明类dbConnection

时间:2017-01-23 07:35:02

标签: php oop pdo

我最近开始学习PDO和OOP,以使我的网站更安全,更快捷。我在PHP中遇到了一些OOP问题。 我有一个名为res(资源的缩写)的文件夹和一个名为classes的文件夹和一个index.php文件,在res文件夹中我有一个menu.php文件,需要两个名为class.ManageUsers.php和class.ManageNews.php的类。在这两个文件中,我包括class.database.php,这是该文件的代码:

<?php

    class dbConnection {

        protected $db_conn;
        public $db_name = 'red_sec_net';
        public $db_user = 'root';
        public $db_pass = '';
        public $db_host = 'localhost';

        function connect(){
            try{
                $this->db_conn = new PDO("mysql:host=$this->db_host;dbname=$this->db_name;",$this->db_user,$this->db_pass);
                $this->db_conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                return $this->db_conn;
                $this->conn = null;
            }catch(PDOException $e){
                die('failed to connect to database');
            }
        }
    }

?>

现在在index.php文件中我需要class.ManageUsers.php所以我在包含menu.php之前包含它但是当我去那个页面时我得到这个错误:

Cannot redeclare class dbConnection in C:\wamp64\www\redsec\classes\class.database.php on line 3

我咨询的人说我应该关闭连接,所以我使用

$ this-&gt; link = null;以及在返回我需要的内容之后包含与连接相关的任何其他变量的所有其他变量 这是我的构造方法:

class ManageUsers {

public $link;

function __construct(){

    $db_connection = new dbConnection();
    $this->link = $db_connection->connect();
    return $this->link;
    $this->link = null;

}
}

我所有的尝试都失败了,我开始把头发拉出任何帮助赞赏

我相信当我执行$db_connection = new dbConnection();

时,构造函数方法中会发生错误

1 个答案:

答案 0 :(得分:-1)

当您的PHP应用加载时,解释器会多次遇到相同的类声明。

试试这个:

include_once或require_once(如果发生同一文件的多个包含)

可能这可能是重复的: Cannot redeclare class - php