4

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;
    }
}

1 Answer 1

14

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);

Sign up to request clarification or add additional context in comments.

2 Comments

Yeah, I hate that. I guess you just get used to it.
When it comes to PHP, you get used to a lot of little nuances like that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.