PHP DBconnection在另一个中使用的类连接

时间:2014-08-04 06:03:10

标签: php oop

我有一个DB类,我在构造函数中调用mysqli connect,我想在另一个类中使用此连接。我怎么能这样做,我必须先在II级课程中重新初始化课程吗?或者我必须继承DB类到类2? 感谢任何指导。

提前致谢,

Sambhav

下面是两个类的粗略轮廓。

CLASS I - 数据库类

class Db {

    private $dbHost = "";
    private $dbUser = "";
    private $dbPass = "";
    private $dbDatabase = "";

    function __construct() {

        $mysqli = new mysqli($this->dbHost, $this->dbUser, $this->dbPass, $this->dbDatabase);
        if ($mysqli->connect_errno) {
            echo "Error in connecting to database" . $mysqli->connect_error;
        }
        //echo "connected to database";
    }

}

第二类 - 尝试使用数据库连接的类

class MyClass {

    private $details = array();

    public function getDetails() {
        $query = "SELECT `user` FROM `db`.`table`";

        $result = $mysqli->query($query);

        while ($row == $result->fetch_assoc()) {
        //.........
        }
        return $details;
    }
}

1 个答案:

答案 0 :(得分:1)

您可以在尝试使用Db的类中使用受保护的属性,例如;

class MyClass {

protected $objDb;

public function connectToDb() {
    $this->objDb = new Db();
}

然后,在getDetails方法中,使用$this->“访问”Db类。

$result = $this->objDb->query($query);

和用法;

$objMyClass = new MyClass();
$objMyClass->connectToDb();
$objMyClass->getDetails();

或者,您可以将connectToDb方法放在__construct()

以下是完整代码:http://harrydenley.com/stackoverflow-25112589/(在我的服务器上测试过并且所有工作都已完成。我必须进行一些更改,您可以在帖子中看到)