0

我只是将我网站的 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() 是一个无需类即可工作的简单函数!

你能帮我吗,有什么问题吗?提前致谢!

4

1 回答 1

4
$do = new doClass();

您将您的doClass类定义为期望构造函数中的参数:

public function __construct(Database $db)

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

例如,如果你有一个数据库对象存储在一个变量之前的某个地方$database,你可以简单地将它传递给这样的构造函数doClass

$do = new doClass($database);
于 2013-02-03T00:30:42.860 回答