2016-09-17 59 views
1

我是一個新的面向對象的PHP。在教程,不能直接使用PDO類,而不是通過函數中調用它,這樣使用PDO類InDirectly更安全嗎?

class Database{ 
    private $pdo; 
    private $stmt; 
    public function __construct(){$this->pdo = new PDO(blaa..blaa..);} 
    public function preparequery($query){$this->stmt=$this->pdo->prepare($query);} 
    public function bind($param,$value){$this->stmt->bindValue($param,$value);} 
    public function execute(){$this->stmt->execute();} 
    public function Fetch(){$this->stmt->fetchall();} 
} 

然後,他把這些公共職能像

$mysql = new Database; 
$mysql->preparequery("INSERT INTO test(name,city) VALUES (:name,:city)"); 
$mysql->bind(':name',$_GET['name']); 
$mysql->bind(':city',$_GET['city']); 
$mysql->execute(); 

我瞭解任何數據庫查詢的教練,但我們可以直接創建一個PDO對象並與數據庫進行交互,所以我只想問一下,上面的方法是否提供了一些好處(比如更安全或者更好)或者僅僅用它來簡化它(儘管我沒有找到它簡單)。

+4

號什麼都有你的類包裝添加.....沒什麼直接 – RiggsFolly

+0

是的,你可以使用PDO對象,但是當PDO庫讓你需要改變在你使用直接PDO對象中的每個文件,你的代碼一些變化。因此,這些課程將使您在將來通過PDO進行某些更改時輕鬆快捷。 – SCC

+0

@RiggsFolly仍不清楚對我來說,能否請您解釋一下多一點 – beginner

回答

2

更安全了點,但更方便

利用的OOP的(數據建模,方法,類,繼承等)的概念在看到PDO有助於緩解和加速未來的編輯,因爲它使一個代碼dry

See suggested reading

它會幫助你有效地構建和少寫。

請注意:上面的OOP嚴格指的是它的概念提到;而不是使用任何給定的包裝類。

PDO是PHP的OOP的方法。

+0

打我幾秒鐘! :p他絕對正確。 Upvoted。 –

+1

PDO已經有一個對象模型。爲什麼換另一種潔癖https://phpdelusions.net/pdo/common_mistakes – RiggsFolly

+0

@RiggsFolly:我只是指** ** OOP本身作爲闡述[這裏](https://en.wikipedia.org/ wiki/PHP#Object-oriented_programming),與PHP相關。 – nyedidikeke