2017-01-13 20 views
0

これは私のコードです:私のかかわり機能でPHPで子の関数から親の変数にアクセスするにはどうすればよいですか?

<?php 
class DB { 

    public $config = array('DBUSER'=>'root', 
        'DBPASS'=>'', 
        'DBHOST'=>'localhost', 
        'DBNAME'=> 'ninjacks'); 


    function get_connection() { 
    try { 
    $db = new PDO('mysql:host='.$this->config['DBHOST'].'; dbname='.$this->config['DBNAME'].'; charset=utf8' 
        , $this->config['DBUSER'], $this->config['DBPASS']); 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    } 
    catch(PDOException $ex) { 
     echo 'An Error occured! '.$ex->getMessage(); //user friendly message 
     return false; 
    } 

    return $db; 
    } 
} 
?> 

<?php 
require_once('database.php'); 

class Base { 
    protected $conn; 
    protected $db; 
    function __construct() { 

     $this->db = new DB(); 
     $this->conn = $this->db->get_connection(); 
    } 
} 
?> 


<?php 
include_once('base.php'); 

class Session extends Base{ 

    function __construct() { 
    parent::__construct(); 
    } 


    public function connexion($email, $password){ 
    $sql = "SELECT email, password 
      FROM users 
      WHERE actif = '1' AND hash = NULL AND email = :email AND password = :password"; 

    $sth = $this->db->prepare($sql); 
    $sth->execute(array(':email' => $email, ':password' => md5($password))); 
    $count = $sth->rowCount(); 

    if($count > 0) 
     return true; 
    else 
     return false; 
    } 
} 
?> 

$this->db->prepare();を使用しているとき、私はいつもこのエラーが表示されます。

ないときは、オブジェクトコンテキストにおける

$これを使用します私はここに投稿する前にたくさんのフォーラムを読んでいましたが、私も2時間も試しました。

答えて

0

$this->db->prepare()が存在しない理由は、$this->dbprepare()メソッドを持たないDBクラスのインスタンスであるためです。代わりにこのように呼び出す必要があります$this->conn->prepare()

+0

私は同じエラーが発生しますが、説明をいただきありがとうございます。 –

+0

あなたは歓迎です..ごめんなさい助けができませんでした。すべてのPHPファイルに対してコードをコピーして貼り付けましたか? – CodeGodie

関連する問題