Fatal error: Call to undefined method db::_results()

Pouya

I got this error message while I'm trying to get the 1st field my table in MySQL database on line 78 in db.php file!

Here's my index.php file:

<?php 
require_once 'php_core/init.php';

$user = db::getInstance()->get('admins',array('username', '=', 'alex'));

if (!$user->count()){
    echo 'No Admin';
}else{
    echo $user->first()->username;
}
?>

And Here's my db.php file which contains functions:

    <?php 
class db{
    private static $_instance = null;
    private $_pdo,
            $_query,
            $_error = false,
            $_results,
            $_count = 0;

    private function __construct(){
        try{
            $this->_pdo = new pdo('mysql:host=' . config::get('mysql/host') . ';dbname=' . config::get('mysql/db'),config::get('mysql/username'),config::get('mysql/password'));
        }catch(PDOException $e){
            die($e->getMessage());
        }
    }

    public static function getInstance(){
        if(!isset(self::$_instance)){
            self::$_instance = new db();
        }
        return self::$_instance;
    }

    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->_result = $this->_query->fetchAll(pdo::FETCH_OBJ);
                $this->_count = $this->_query->rowCount();
            }else{
                $this->_error = true;
            }
        }
        return $this;
    }

    private 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 $this;
    }

    public function get($table,$where){
        return $this->action('SELECT *', $table,$where);
    }

    public function delete($table,$where){
        return $this->action('DELETE', $table,$where);
    }

    public function results(){
        return $this->_results;
    }

    public function first(){
        return $this->results()[0];
    }

    public function error(){
        return $this->_error;
    }

    public function count(){
        return $this->_count;
    }

}
?>

Here's the line 78 that gives the error:

return $this->results()[0];

jmattheis

You may use the variable and do not call the method results()

public function first(){
    return $this->_results[0];
}

what you trying is probably not possible with your php version you can also do this

public function first(){
    $results = $this->results();
    return $results[0];
}

You code would be correct if you have >= PHP 5.4 it is called Array dereferencing

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Fatal error: Call to undefined method DB::getInstance()

PHP Error: Fatal error: Call to undefined method

Fatal Error - Call to undefined method "Customersss::throwError()"

Fatal error: Call to undefined method PDOStatement::lastInsertId()

Fatal error: Call to undefined method MongoCollection::insertMany()?

Fatal error: Call to undefined method connectDB::prepare()

PHP Classes - Fatal error: Call to undefined method

Fatal Error :: Call to undefined method in codeigniter

Fatal error Call to undefined method VmVendorPDF::convertHTMLColorToDec()

xampp - Fatal error: Call to undefined method

PHP: Fatal error: Call to undefined method mysqli

Fatal error: Call to undefined method DOMDocument::getElementsById()

Fatal error: Call to undefined method CI_DB_mysqli_driver::result()

Fatal error: Call to undefined method CI_DB_pdo_driver::where() in

PHP - Fatal Error: Call to undefined method - but method exist

Error Message: Call to undefined method CI_DB_mysqli_result::results()

Caught fatal error: Call to undefined function geoip_db_avail()?

Fatal error: Uncaught Error: Call to undefined method why?

PHP Fatal error: Call to undefined method stdClass::save() - Yii framework

Fatal error: Call to undefined method GuzzleHttp\Client::request() with Guzzle 6

php Fatal error: Call to undefined method TCPDF::addTTFfont() in

Fatal error: Call to undefined method Google_IO_Curl::authenticatedRequest()

Fatal error: Call to undefined method mysqli::num_rows()

PHP: Fatal error: Call to undefined method case_controller

Fatal error: Call to undefined method PDO::select() in line 9

Fatal error: Call to undefined method stdClass::_setSession() on line 58

Call to undefined method CI_DB_mysqli_result::results()

Fatal error: Call to undefined function

PHPUnit Error Fatal error: Call to undefined method Mock_Game_073a8e20::method()