2017-01-13 1 views
0

Dies ist mein Code:Wie kann ich über die PHP-Funktion eines Kindes auf die Variable eines Elternteils zugreifen?

<?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; 
    } 
} 
?> 

In meiner connexion Funktion, ich diesen Fehler immer erhalten, wenn $this->db->prepare(); mit:

Mit diesem $, wenn sie nicht in Objektkontext

Ich habe viele Foren gelesen, bevor ich hier gepostet habe, und ich habe auch 2 Stunden probiert.

Antwort

0

Der Grund, warum es nicht funktioniert ist, weil $this->db->prepare() nicht existiert als $this->db ist eine Instanz Ihrer DB-Klasse, die keine prepare() Methode hat. Stattdessen müssen Sie es so nennen $this->conn->prepare()

+0

Ich bekomme den gleichen Fehler, aber danke für die Erklärung. –

+0

du bist willkommen .. sorry ich konnte nicht helfen .. Es muss etwas an Ihrem Code, dass ich nicht sehen. Haben Sie Ihren Code vollständig kopiert und für alle Ihre PHP-Dateien eingefügt? – CodeGodie

Verwandte Themen