Look over my code for PDO and MVC
A part of code in auth::login() of method you should move to other class, for example 'db'. Because you class auth has too much responsibility. For example if you want to have dynamic define fields in class auth:

Db class:

class db {
    public function getItem($table, $fields = '*', $conditions = array()) {
        // you code ...
        return $row;
    }
}


Your model:

class auth {
    private $table = 'users';
    private $fields = 'u_login, u_email, u_id_level';
    private $fieldLogin = 'u_login';
    private $fieldPassword = 'u_password';

    public function setTable($value) { $this-&gt;table = $value; }
    public function setFields($value) { $this-&gt;fields = $value; }
    public function setFieldLogin($value) { $this-&gt;fieldLogin = $value; }
    public function setFieldPassword($value) { $this-&gt;fieldPassword = $value; }

    public function login() {
        $db = new db();
        return $db-&gt;getItem($this-&gt;table, $this-&gt;fields, array(
            $this-&gt;fieldLogin =&gt; $this-&gt;login,
            $this-&gt;fieldPassword =&gt; $this-&gt;password
        ));
    }   
}


This code is more elastic and simpler will be change it.