2012-12-01 87 views
1
class Group extends dbConnection { //Class for group, for ex. employe and employers. 
    public $name; // Name of group 
    public $pdo; 

    public function __construct ($name, dbConnection $pdo) { 
    $this->pdo = $database->pdo; 
    } 

    public function getGroupList() { 
     try //      FAULTY LINE BELOW \/\/\/\/\/\/\/ 
     { 
      $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //to catch exceptions 

      $stmt = $pdo -> query('SELECT id, Name, Skills FROM '.$this->name); //sql query with group name 
      $list = $stmt->fetchAll(PDO::FETCH_NUM); //fetch statement into array 
      $stmt -> closeCursor(); 
      unset($stmt); 
      return var_dump($list); //gives pure data 
     } 
     catch(PDOException $e) 
     { 
      return 'There was some error: ' . $e->getMessage(); 
     } 
    } 

} 

與數據庫連接類之間移動PDO連接不類

$conn = new dbConnection; 
$workers = new Group("workers", $conn); 
$workers->getGroupList(); 

後: 「連接成功」,我得到錯誤:

致命錯誤:調用第14行上的非對象的成員函數setAttribute()

我認爲這個類Group不會從dbConnection獲得$ pdo。我不知道我做錯了什麼。

回答

0

變化(在數據庫連接類)

$pdo = new PDO('mysql:host='.$host.';dbname='.$database.';port='.$port, $username, $password); 

$this->pdo = new PDO('mysql:host='.$host.';dbname='.$database.';port='.$port, $username, $password); 

另外改變以下

public function __construct ($name, $database) { 
    $this->pdo = $database->pdo; 
} 

而且在Group類中,使用$this->pdo代替$pdo

+0

他們沒有區別 – maszynka

+0

查看編輯答案 – GBD

+0

仍然是一樣的。 – maszynka