2014-03-12 75 views
0

嘿,我最近已移到PDO和OOP,並有連接聲明的問題。我收到的錯誤是;兩個PDO連接錯誤

注意:未定義的變量:DB_HOST在C:\用戶\ PC \文件\ XAMPP \ htdocs中\庫\ class.Manage.php上線14

致命錯誤:在C不能訪問空屬性:\用戶\ PC \文件\上閱讀至少任何教程PDO線14

class ManageHits{ 

protected $link; 
protected $db_host = "localhost"; 
protected $db_name = "ajaxrating"; 
protected $db_user = "userone"; 
protected $db_pass = "passwordone"; 

function __construct(){ 
    try{ 
    $this->link = new PDO($this->$db_host,$this->$db_name,$this->$db_user,$this->$db_pass); 
     return $this->link; 
    } 
    catch(PDOException $e){ 
     return $e->getMessage; 
    } 
} 
+0

http://www.php.net/manual/en/language.oop5.visibility.php –

回答

0

你應該閱讀有關PDO

教程一步一步

而且你的代碼有很多問題。

  1. $ e-> getMessage; => $ e-> getMessage();
  2. 構造函數應該是public我假設?
  3. 你的變量應該是private
  4. 構造函數用於實例化類
  5. PDO
  6. 初始化構造函數中的變量兼容性

這是一個工作示例假設你的連接信息是正確的:

class Con{ 

    protected $link; 
    protected $db_host; 
    protected $db_name; 
    protected $db_user; 
    protected $db_pass; 

    public function __construct(){ 

     $this->db_host = "localhost"; 
     $this->db_name = "ajaxrating"; 
     $this->db_user = "userone"; 
     $this->db_pass = "passwordone";   

     try{ 

      $this->connection = new PDO("mysql:host=$this->db_host;dbname=$this->db_name", $this->db_user, $this->db_pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); 
      echo 'Connection established!'; 
     } 
     catch(PDOException $e){ 
      echo $e->getMessage(); 
     } 
    } 
} 

$db = new Con(); 
+0

非常感謝你,將不得不參與OOP和PDO的Youtube系列 – user3406014

0
  1. XAMPP \ htdocs中\庫\ class.Manage.php。

  2. 以正確的方式連接到PDO,創建一個PDO實例。

  3. 在ManageHits類中傳遞該實例。

    class ManageHits{ 
    
        protected $link; 
    
        function __construct($db){ 
         $this->link = $db; 
        } 
    } 
    
0

您不正確調用的new PDO()裏面你的對象:

應該

$this->db_host // and so forth