数据库查询未按预期返回php pdo

时间:2015-08-08 13:14:27

标签: php mysql pdo

您好我正在尝试使用php中的pdo查询数据库以返回我的数据库中的所有信息,我正确连接到数据库但是当我尝试返回所有数据库信息并打印它时,我得到了这个结果从我的函数>

返回

PDOStatement对象([queryString] => SELECT * FROM users)

我想让函数返回整个数据库信息。这是我的代码,非常感谢您的帮助,谢谢。

  public function resetpassword() 
  {

         try
         {
            $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD ); 
            $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
            $sql = 'SELECT * FROM users';

            $result = $conn->query($sql);

            return $result;

            $conn = null;
         }
        catch(PDOException $e)
        {
            return 'Database Error';
        }

     }

这是我用来打印该函数结果的代码:

print_r ($usr->resetpassword());

1 个答案:

答案 0 :(得分:1)

$ result将结果设置为PDOStatement对象。如果使用fetchAll(),它将以数据数组的形式获取数据。虽然您可以遍历PDOStatement对象结果集并提取数据。像这样:

foreach ($conn->query($sql) as $row) {
 echo $row['yourColumnName'];
}

试试这个:

    <?php

    class Database{

    public function resetpassword() 
      {

             try
             {
                $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD ); 
                $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
                $sql = 'SELECT * FROM users';

                $s = $conn->query($sql);

                return $s->fetchAll(PDO::FETCH_ASSOC);

                $conn = null;
             }
            catch(PDOException $e)
            {
                return 'Database Error';
            }

        }

    }

    $usr=new Database();

    var_dump($usr->resetpassword());