PHP PDO类数据提取

PHP PDO类数据提取,php,pdo,Php,Pdo,您好,我目前正在使用一个PDO类,我在网站上下载了这个类,这是我选择所有数据的代码$results=$db->select(“accounts”)。下面是这个类中的函数 public function run($sql, $bind="") { $this->sql = trim($sql);z $this->bind = $this->cleanup($bind); $this->error = ""; try { $p

您好,我目前正在使用一个PDO类,我在网站上下载了这个类,这是我选择所有数据的代码
$results=$db->select(“accounts”)。下面是这个类中的函数

public function run($sql, $bind="") {
    $this->sql = trim($sql);z
    $this->bind = $this->cleanup($bind);
    $this->error = "";

    try {
        $pdostmt = $this->prepare($this->sql);
        if($pdostmt->execute($this->bind) !== false) {
            if(preg_match("/^(" . implode("|", array("select", "describe", "pragma")) . ") /i", $this->sql))
                return $pdostmt->fetchAll(PDO::FETCH_ASSOC);
            elseif(preg_match("/^(" . implode("|", array("delete", "insert", "update")) . ") /i", $this->sql))
                return $pdostmt->rowCount();
        }   
    } catch (PDOException $e) {
        $this->error = $e->getMessage();    
        $this->debug();
        return false;
    }
}

public function select($table, $where="", $bind="", $fields="*") {
    $sql = "SELECT " . $fields . " FROM " . $table;
    if(!empty($where))
        $sql .= " WHERE " . $where;
    $sql .= ";";
    return $this->run($sql, $bind);
}
我的问题是,我想在while循环中回显数据,但在执行时遇到了问题。目前,我正在使用
print\r($results)
检查数据库中的数据。我试过了

while($row=$results->fetch(PDO::FETCH_ASSOC)) 
{ echo $row['Somefield']; } 

我得到了这个错误<代码>致命错误:对非对象调用成员函数fetch()
。如何将该代码放入while或foreach循环?

正如我在上面的评论中所述,包装好的PDO类进行
PDOStatement::fetchAll()
调用,并从
db::select()
返回该调用的结果

因此,您需要像迭代任何其他数组一样迭代
$results

foreach ($results as $result) {
    echo $result['Somefield'];
}

查询在哪里???显示为
$results
@saty赋值的代码您检查过pdo类吗?@Sourabh您检查过pdo类吗?查看该类,
$db->select()
返回
PDOStatement::fetchAll()
的结果。这意味着您应该使用:
foreach($results as$result){echo$result['Somefield'];}
迭代
$results
。作为一个延续,我可以使用if($results>0){echo“Login success”;}这样做吗?@FewFlyBy您可以执行
if(count($results)>0){echo“Login success”}