我现在有点困惑,因为我的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;
}
答案 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