2017-05-22 2 views
0

現在、PHPでpgsqlを使用してdbconnectionクラスを作成しています。私はすでにconnect関数とquery関数を書いていますが、結果を取得する方法を知りました。dbconnectionクラスPGSQLリライト関数

現在、我々は、クエリの後に結果をフェッチするために、この機能を使用する必要があります。

$db = new dbconnection(); 
$stmt= $db -> query("SELECT * FROM users"); 
pg_fetch_all($stmt); 

クリーンなコードを持っているために、私は結果をフェッチするためにフォローをしたい:

$db = new dbconnection(); 
$stmt= $db -> query("SELECT * FROM users"); 
$result = $stmt -> fetchAll(); 

どのようにこれを行うにはどんな助け?事前

+0

なぜPDOを使用しないのですか? – schellingerht

+1

ああ、ありがとうございました:D – Nathan30

+0

あなたの問題の単純化された解決策を投稿します。見てみましょう;-) – schellingerht

答えて

2

おかげでdbconnectionquery方法は、そう(PHP7、単純化された)のようなStatementのインスタンスを返す必要があります:

final class Statement 
{ 
    private $result; 

    public function __construct(array $result = []) 
    { 
     $this->result = $result; 
    } 

    public function fetch() 
    { 
     return $this->result[0]; 
    } 

    public function fetchAll() 
    { 
     return $this->result; 
    } 
} 

だから、そう(簡体字)のように、これを呼び出す:

final class DBConnection 
{ 
    // constructor etc. 

    public function query(string $query) 
    { 
     // $result = result of the passed executed string $query 

     return new Statement($result); 
    } 

} 
関連する問題