我创建了数据库类和数据库访问对象,因此我可以以某种方式实现值对象模式。
这是数据库类的一部分及其功能:
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*
为什么会这样?