Witam,
Zacząłem ambitniej uczyć się programowania obiektowego w PHP i natrafiłem na pewien problem z zapytaniami. Z dodawaniem rekordów do bazy sobie poradziłem, mam problem z ich pobieraniem. Tak oto prezentuje się mój kod:
class DB.php
public function select($table,$conditions = array()){
$sql = 'SELECT ';
$sql .= array_key_exists("select",$conditions)?$conditions['select']:'*';
$sql .= ' FROM '.$table;
if(array_key_exists("where",$conditions)){
$sql .= ' WHERE ';
$i = 0;
foreach($conditions['where'] as $key => $value){
$pre = ($i > 0)?' AND ':'';
$sql .= $pre.$key." = '".$value."'";
$i++;
}
}
if(array_key_exists("order_by",$conditions)){
$sql .= ' ORDER BY '.$conditions['order_by'];
}
if(array_key_exists("start",$conditions) && array_key_exists("limit",$conditions)){
$sql .= ' LIMIT '.$conditions['start'].','.$conditions['limit'];
}elseif(!array_key_exists("start",$conditions) && array_key_exists("limit",$conditions)){
$sql .= ' LIMIT '.$conditions['limit'];
}
$query = $this->db->prepare($sql);
$query->execute();
return !empty($data)?$data:false;
}
class User.php
public function loginUser($credentials){
$db = new DB();
$email = $credentials['email'];
$password = $credentials['password'];
$result = $db->select('users', array('where'=>array('email'=>$email),'password'=>$password));
if ($result->rowCount() > 0){
//
}else{
//
}
}
login.php
<?php
require __DIR__ . '/../../../vendor/autoload.php';
use App\User;
$credentials = [
'email' => $_POST['email'],
'password' => $_POST['password']
];
$user = new User();
$user->loginUser($credentials);
błąd który otrzymuję
Fatal error: Uncaught Error: Call to a member function rowCount() on bool