我已经通过here
关注了PHP Academy的OOP教程DB类的构建方式是将数据库结果作为Object
获取public function query($sql, $params=array()){
$this->_error = false;
if($this->_query = $this->_pdo->prepare($sql)){
$x=1;
if(count($params)){
foreach ($params as $param) {
$this->_query->bindValue($x, $param);
$x++;
}
}
if($this->_query->execute()){
$this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ);
$this->_count = $this->_query->rowCount();
}else{
$this->_error = true;
}
}
return $this;
}
这很重要,因为用户登录就像这样
public function login($username = null, $password = null){
$user = $this->find($username);
if($user){
if($this->data()->password === Hash::make($password, $this->data()->salt)){
Session::put($this->_sessionName, $this->data()->id);
return true;
}
}
return false;
}
现在,当我想实现foreach以逐行获得结果时,他们要求一个数组
$result = $product->getData($_GET['id']);
if(!empty($result)){
foreach ($result as $row) {echo $row['id'];}}
getData函数
public function getData($_id){
return $this->_db->get('products', array('id', '=', $_id))->results();
}
结果函数在DB类
中public function results(){
return $this->_results;
}
当我更改Fetch All以获取OBJ和ARRAY时,用户无法登录。
我该怎么办?要改变哪个功能?
抱歉英语不好
先谢谢