【问题标题】:OOP PDO fetch while loopOOP PDO 获取 while 循环
【发布时间】:2012-11-16 03:49:20
【问题描述】:

我的课堂上有一个功能没有完成。我正在寻找一种方法来整夜做这件事。好吧,我想在 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 个结果。任何人都可以告诉我,我可以从哪里开始寻找解决此问题的方法?

【问题讨论】:

    标签: php mysql pdo


    【解决方案1】:

    其实很简单。您使用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(); 
        }
    }
    

    【讨论】:

      【解决方案2】:

      只在 while 循环中使用 $sql->fetch(PDO::FETCH_ASSOC),而不是之前,因为你有它。

      所以,比如:

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

      【讨论】:

      • 是的,在我发布代码时说... // 缺少什么... 有什么要点吗?
      • $row 中的项目像在数组中一样被提取。如果你正在做select name from pets,你会像这样访问它:$row['name']
      猜你喜欢
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 1970-01-01
      相关资源
      最近更新 更多