USER
とADMIN
という2つのクラスを作成し、adminを拡張しました。mysqlデータベースへのPDO接続のPHP oop継承
クラスUSER
のオブジェクトを使用するとデータベースから必要なデータを取得できますが、ADMIN
オブジェクトで作業するときにデータを取得できません。次のように クラスは次のとおりです。最初は
class USER
{
private $conn;
public function __construct()
{
$database = new Database();
$db = $database->dbConnection();
$this->conn = $db;
}
public function runQuery($sql)
{
$stmt = $this->conn->prepare($sql);
return $stmt;
}
...some functions to query the DB
}
と
class ADMIN extends USER
{
private $conn;
public function __construct()
{
$database = new Database();
$db = $database->dbConnection();
$this->conn = $db;
}
...some other functions to query the DB
}
私は、これは私の2回目の試行である管理者は、すべてではないprivate
プロパティを継承することを読まなく、中にいるので、私は、コンストラクタが含まれていませんでしたどちらの場合でも私はこのエラーが発生しました:
Call to a member function prepare() on a non-object
私は行方不明ですか? THX
UPDATE:私はADMIN
クラスで例えば、この機能を持っている:これはあなたの問題を説明しなければならない
$stmt = $this->conn->prepare("SELECT * FROM appeals WHERE lecturer_id = :lecturer_id");
ユーザーは管理音を私に後方に拡張します。管理者はユーザーのサブセットであり、他の方法ではありません。各クラスでデータベース接続を作成することは悪い呼び出しです。既存の接続を、重要なアプリケーションのクラスに渡します。 – ceejayoz
@ceejayoz Yea私もそれを見ましたが、あなたがコードを見れば彼が実際にしていることではありません。 – RiggsFolly
[Doctrine](http://www.doctrine- project.org/)と[Propel](http://propelorm.org/)は機能が完備されテスト済みですか? – tadman