2013-05-29 36 views
-5

如何使數據庫PDO查詢插入?在另一個類中使用PDO

+7

[OOP基礎](http://php.net/manual/en/language.oop5.basic.php),[可變範圍](HTTP:/ /php.net/manual/en/language.variables.scope.php) – deceze

+4

您不能在類聲明中直接使用代碼。 –

回答

0

理想情況下,利用您的構造函數將數據庫類添加到範圍。構造函數是一個特殊的函數,當你開始上課時,它會立即觸發。

class Jcart { 
    public $config  = array(); 
    private $items  = array(); 
    private $subtotal = 0; 
    private $itemCount = 0; 
    private $db;  

    public function __construct() { 
     $this->db = new PDO(); 

    } 

    public function someMethod() { 
     // Your PDO class is now available on the '$this' scope 
     $prepare = $this->db->prepare(...); 
    } 
} 

爲了從類的外部您可以訪問它,就像任何財產使用值在類的外部,你必須把它公開,如您的配置值,然後。

$cart = new JCart(); 
$cart->config; // outputs $config property from JCart 
+0

將'$ db'作爲構造函數的依賴關係會更好。 –

3

如果Jcart有一個連接的PDO一個depencancy反對這樣做是將其傳遞到Jcart構造,並保存到一個受保護的或私有財產最乾淨的東西。當你想要什麼東西時,你會想出一個方法來獲得你想要的東西。

class Jcart{ 
    private $db; 

    public function __construct(PDO $db){ 
     $this->db = $db; 
    } 
    public function getItems(){ 
     $sql = "select * from items"; 
     $res = $this->db->query($sql); 
     return $res->fetchAll(); 
    } 
} 

將會有一個示例用法。 (假設$ db是一個連接的PDO對象)

$jc = new Jcart($db); 
$items = $jc->getItems();