0

我创建了数据库类和数据库访问对象,因此我可以以某种方式实现值对象模式。

这是数据库类的一部分及其功能:

class Database {

    protected $conn = null;
    private $stmt;


    // create a connection
    public function __construct($dsn, $username, $passwd) {
        try {
            // mysql and pdo
            $this->conn = new PDO($dsn, $username, $passwd); 
            $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
        } catch (PDOException $e) {
            $this->get_error($e);
        }
    }
}

这个 db 类的一部分是我创建的函数,称为num_rows

public function num_rows($query) {
    $this->stmt = $this->conn->prepare($query);
    if ($this->stmt) {
        $this->stmt->execute();
        return $this->stmt->rowCount();
    }
}

我也有这个 DAO 类,它可以做你实际看到的事情。

class Dao {
    protected $db = null;

    public function __construct() {
        $dbh = new Database('mysql:host=localhost;dbname=doorche', 'root', '');
         $this->db = $dbh->getConnection();
    }
//put your code here
}

例如,当我在另一个类中扩展 DAO 类时,loginDao我无法以某种方式访问​​ *num_rows*

为什么会这样?

4

1 回答 1

0

你需要inherit Dao按如下方式上课。

class Dao extends Database {

然后在loginDao.

class loginDao extends Dao {

现在loginDao也可以访问Database方法,

于 2013-03-23T04:18:50.547 回答