views:

216

answers:

1

Hi, 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 tryinmg to call runQuery() method but every time I try, I get this error:

Fatal error: Call to undefined function runMyQuery() 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;
 }
}
+10  A: 

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

Jordan S. Jones
Yeah, I hate that. I guess you just get used to it.
Don Kirkby
When it comes to PHP, you get used to a lot of little nuances like that.
Jordan S. Jones
cool thanks, this works :)
Tomaszewski