OOP PDO在循环时获取

时间:2012-11-16 03:49:21

标签: php mysql pdo

我的课程中有一个功能尚未完成。我正在寻找一种整夜做的方法。好吧,我想在OOP类/函数中使用PDO将所有SELECT请求的结果提取到MYSQL。

这是我的功能

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个结果。对我来说,有什么意义,我可以开始寻找解决这个问题的方法吗?

2 个答案:

答案 0 :(得分:3)

实际上,这很容易。您使用PDO::FETCH_CLASS并指定要为每行实例化的类。

以下示例将所有可用行作为类YourClassName的对象数组提取。

function select($query) {
    try {
        $sql = $this->connect->query($query);
        return $sql->fetchAll(PDO::FETCH_CLASS, YourClassName);
    } catch(PDOException $e) {  
        echo $e->getMessage(); 
    }
}

答案 1 :(得分:0)

仅在while循环中使用$sql->fetch(PDO::FETCH_ASSOC),而不是之前使用{。}}。

所以,像:

while($row = $sql->fetch(PDO::FETCH_ASSOC)) {
    // something
}