1

クラスに完了していない関数があります。私は一晩中それを行う方法を探しています。さて、OOPクラス/関数でPDOを使用してMYSQLへのSELECTリクエストのすべての結果をフェッチしたいと思います。

ここに私の機能

function select($query)
{
    try
    {
    $sql = $this->connect->query($query);
        while ($row = $sql->fetch(PDO::FETCH_ASSOC))
        {
        return ????
        }
    }
    catch(PDOException $e) 
    {  
        echo $e->getMessage(); 
    }

}

whileループでそれを実行できることはわかっています。いくつかのオプションをテストしましたが、ほとんどの場合、1つの結果しか得られませんでした。この問題の解決策を探し始めることができる私にとってのポイントはありますか?

4

2 に答える 2

3

実際、それはかなり簡単です。PDO::FETCH_CLASS行ごとにインスタンス化するクラスを使用して指定します。

以下は、使用可能なすべての行を class のオブジェクトの配列としてフェッチする例ですYourClassName

function select($query) {
    try {
        $sql = $this->connect->query($query);
        return $sql->fetchAll(PDO::FETCH_CLASS, YourClassName);
    } catch(PDOException $e) {  
        echo $e->getMessage(); 
    }
}
于 2012-11-16T04:09:33.220 に答える
0

$sql->fetch(PDO::FETCH_ASSOC)あなたが持っているように、前ではなく、whileループ内でのみ使用してください。

以下のようなので:

while($row = $sql->fetch(PDO::FETCH_ASSOC)) {
    // something
}
于 2012-11-16T03:58:39.993 に答える