Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Trying to call method: undefined function error

I have a class to connect to my database, strip stuff and return things from a db query. Anyhow, the problem I am having is that I am trying to call runQuery() method but every time I try, I get this error:

Fatal error: Call to undefined function runQuery() in DatabaseConnector.php line 22

Any ideas perhaps? I know runQuery is private but it is within the same class. Just for kicks I changed it to public any way, and still got the same error :(

final class DatabaseConnector
{
    private $db;

    public function DatabaseConnector()
    {
        //  constructor
    }

    public function connectMySQL($host, $user, $passwrd, $db, $query)
    {
        @ $db = new mysqli($host, $user, $passwrd, $db);

        if (mysqli_connect_errno())
        {
            return mysqli_connect_errno();
        }
        else
        {
            $queryResult = runQuery($query);

            return $queryResult;
        }
    }

    private function runQuery($query)
    {
        $result = $db->query($query);

        return $result;
    }
}
like image 640
Tomasz Iniewicz Avatar asked Dec 09 '22 20:12

Tomasz Iniewicz


1 Answers

In PHP you have to prefix object level methods/variables with $this otherwise it will look for the function/variable in the global "namespace".

So change $queryResult = runQuery($query); to $queryResult = $this->runQuery($query);

like image 142
Jordan S. Jones Avatar answered Dec 14 '22 00:12

Jordan S. Jones