2016-09-17 6 views
1

私はオブジェクト指向のPHPに新しいです。チュートリアルでは、講師はこのPDDクラス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();} 
} 

のように、代わりに機能を経由して、それを使用して、直接PDOクラスを使用していないし、彼は私がそれを理解

$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はOOPにPHPのアプローチです。

+0

数秒でパンチに私を打つ!彼は絶対に正しいです。 Upvoted。 –

+1

PDOにはすでにオブジェクトモデルがあります。なぜトップに別のものをラップするのですか?https://phpdelusions.net/pdo/common_mistakes – RiggsFolly

+0

@RiggsFolly:私は単に** OOP **そのものを参考にしています。[ここ](https://en.wikipedia.org/) wiki/PHP#Object-oriented_programming)、PHPに関連しています。 – nyedidikeke

関連する問題