所以我开始使用PDO而不是mysqli,我正在研究对象映射。 最后让它工作,但我需要解决一些问题。
首先,我在这里有一个小小的数据库。
try {
$query = $this->_pdo->prepare("SELECT * FROM users WHERE email = :email");
$statement = $query->execute(array('email'=>$email));
$result = $query->fetchAll(PDO::FETCH_CLASS, "User");
return $result;
} catch(PDOException $e) {
return 'Connection error: ' . $e->getMessage() . '<br/>';
}
现在有类User,就像这样:
class User {
private $id;
private $username;
private $email;
private $password;
private $date_registered;
private $ip_address;
private $is_activated;
private $activation_token;
public function __construct($username, $email, $password, $ipAddress, $isActivated, $activationToken) {
$this->username = $username;
$this->email = $email;
$this->password = $password;
$this->ip_address = $ipAddress;
$this->is_activated = $isActivated;
$this->activation_token = $activationToken;
}
现在最大的问题是,FETCH_CLASS首先填充变量,然后检查构造函数......正如您所看到的,我的构造函数需要参数,所以现在我遇到了一大堆错误。 我也在没有构造函数的情况下测试了它,然后FETCH_CLASS工作得很好。但是,我需要构造函数。我想我总是可以创建一个与构造函数相同的不同函数,但是如果可能的话我想保持这种方式。
那么,有没有办法在不删除构造函数的情况下解决这个小构造函数问题?