私は現在、次のようにDB接続を渡そうとしています。
class Test {
public $user;
public $db;
function __construct() {
// connect to database
try {
$this->db = new PDO('mysql:host='.DB_HOST.';dbname='.DB_DATABASE.'', DB_USERNAME, DB_PASSWORD);
$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $err) {
die($err->getMessage());
}
$this->user = new User($this->db);
}
}
class User {
public $db;
function __construct($db) {
$this->db = $db;
}
// execute some query
$sql = "SELECT * FROM test";
$sth = $this->db->prepare($sql);
$sth->execute();
$result = $sth->fetch();
if(!empty($result)) {
echo '<pre>';
var_dump($result);
echo '</pre>';
}
}
しかし、私は次のようになります。致命的なエラー:非オブジェクトでメンバー関数prepare()を呼び出します。私は何が間違っているのですか?