我只是将我的网站的MySQL改为PDO,当我尝试在其他类中使用PDO时,我遇到了一个奇怪的问题。
class Database {
private $pdo;
public function __construct() {
$this->pdo = new PDO('mysql:host=localhost;dbname=appdora;charset=utf8', 'root', 'root');
}
}
class doClass {
//Variables
private $db;
//PDO
public function __construct(Database $db) {
$this->db = $db;
}
代码返回时出现以下错误:
Catchable fatal error: Argument 1 passed to doClass::__construct() must be an instance of Database, none given, called in .../index.php on line xx and defined in ../classes.php on line xx
代码:
$do = new doClass();
if ($do->loginCheck()) { echo 'loginOk'; } else { 'loginError'; }
loginCheck()是一个没有类的simle函数!
你能帮助我吗,问题是什么? 提前谢谢!
答案 0 :(得分:4)
$do = new doClass();
您定义了doClass
类以期望构造函数中的参数:
public function __construct(Database $db)
因此,您需要提供类型为Database
的参数才能成功构建对象。
例如,如果您在变量$database
内的某个位置之前存储了数据库对象,则只需将其传递给doClass
的构造函数,如下所示:
$do = new doClass($database);