0

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

我的带有数据库凭据的代码被清空:

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;
}
4

1 回答 1

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 调用的任何错误处理,因此无法检测到这一点。– 马克 B

于 2012-11-10T23:40:28.190 回答