2015-10-14 64 views
-2

我想在類中使用PDO連接,但似乎無法正確完成。如何初始化類中的PDO連接,以便該類中的其他方法可以訪問該連接

class core{ 

    public $dbh; 

    public function __construct(){ 
     try { 
     $dbh = new PDO('mysql:host=localhost;dbname=sales;charset=utf8', 'root', '0150000048785', array(PDO::ATTR_EMULATE_PREPARES => false, PDO:: ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 
     } catch (PDOException $e){ 
      echo $e->getMessage(); 
     } 
    } 

class「core」內的另一種方法;

public function varify_pwd(){ 

        $varify = $this->dbh->prepare("SELECT * FROM users WHERE uid = ?"); 
        self::bindParams($varify, array($_SESSION['uid']), $dbh); 
        $row = $varify->fetch();      

        if (password_verify($pwd, $row['pwd'])){ 
         return true; 
         exit; 
        } else { 
         return false; 
         exit; 
        } 
    } 
} 

如何使變量$ dbh可用於其他方法?

+0

檢查[$ this](http://php.net/manual/en/language.oop5.basic.php)。 – Federkun

回答

1
class core{ 

public $dbh; 

public function __construct(){ 
    try { 
    //see here: 
    $this->dbh = new PDO('mysql:host=localhost;dbname=sales;charset=utf8', 'root', 'password', array(PDO::ATTR_EMULATE_PREPARES => false, PDO:: ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 
    } catch (PDOException $e){ 
     echo $e->getMessage(); 
    } 
} 
+0

「dbh」在varify_pwd()中未定義; – Relm

+0

你需要在任何地方使用$ this-> dbh。 – Kanti

+0

好的,現在好了。 – Relm

相關問題