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并指定要为每一行实例化的类。

这是一个将所有可用行作为类对象数组获取的示例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 回答