PDO不在类中存储值

时间:2012-11-10 23:34:58

标签: php database class pdo

我现在有点困惑,因为我的DB类似乎没有在查询后存储任何结果(即'results'属性仍然是一个空数组)。不可思议的是,当我将逻辑转移到类定义之外时,它可以完美地运行。

我的数据库凭据代码消失了:

namespace DatabaseConnection;
use PDO;

class DB {

/*****STATES*****/
private $con;
private $results; 


/*****METHODS*****/
public function init(){

    $this->con = new PDO("***************************");
    $this->results = array();

    return $this;
}

public function getInfo(){
    if($this->con === null ) return "No Connection";
    else return "Connected"; 
}

public function getResults(){
    return $this->results;
}



public function retrieve(){
    $query = $this->con->prepare("select * from documents");
        $query->execute(); 


        while($row = $query->fetch(PDO::FETCH_ASSOC)){
        $this->results[] = $row;
        }



    return $this;
}

1 个答案:

答案 0 :(得分:2)

尝试:

public function retrieve(){
    $query = $this->con->prepare("select * from documents");

    $query->execute();  //<---------

    while($row = $query->fetch(PDO::FETCH_ASSOC)){
       $this->results[] = $row;
    }

    return $this;
 }

OP 准备一个语句,然后永远不会执行,并且无法检测到这一点,因为DB调用完全没有任何错误处理。 - Marc B