Когда я вызываю функцию 'get' с именем пользователя в качестве аргумента, он не показывает никакого результата. Но когда я делаю это, передавая идентификатор, тогда он показывает результат. Информация правильно хранится в базе данных. Я следую инструкциям из codecourse на PHP OOP системе входа / регистрации. Мои функции выглядят:
$user =DB::getInstance();
$user->get('users', array('username', '=', 'subodh')); // doesn not show result
$user->get('users', array('id', '=', '24')); // shows result
if(!$user->count()) {
echo 'No user';
}
else {
echo $user->first()->username;
}
public function get($table, $where)
{
return $this->action('SELECT *', $table, $where);
}
public function action ($action, $table, $where = array())
{
if(count($where)===3)
{
$operators = array('=','>','<','>=','<=');
$field = $where[0];
$operator = $where[1];
$value = $where[2];
if(in_array($operator, $operators))
{
$sql="{$action} FROM {$table} WHERE {$field} {$operator} ? ";
if (!$this->query($sql, array($value))->error())
{
return $this;
}
}
}
return false;
}
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;
}