PDO在其他课程中出了什么问题?

时间:2013-02-03 00:15:37

标签: php mysql class pdo

我只是将我的网站的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函数!

你能帮助我吗,问题是什么? 提前谢谢!

1 个答案:

答案 0 :(得分:4)

$do = new doClass();

您定义了doClass类以期望构造函数中的参数:

public function __construct(Database $db)

因此,您需要提供类型为Database的参数才能成功构建对象。

例如,如果您在变量$database内的某个位置之前存储了数据库对象,则只需将其传递给doClass的构造函数,如下所示:

$do = new doClass($database);