0

I'm trying to make a simple project using PDO. I have a class UserDAO with two SELECT functions:

public function getAll(){
 $query="select * from users";
 $res = $this->db->query($query);
 return $res;
}

...and this one...

public function getAllWhere($where){
 $query="select * from users where ?";
 $res = $this->db->query($query,array($where));
 return $res; 
}

When I call the function getAll(), it works fine:

<?php
 $ud = new UserDAO();
 $result=$ud->getAll();
 foreach ($result as $row){
   echo '<br/>'.$row['id'].' '.$row['username'];
}
?>

But when I try to user the other function...

<?php
 $ud = new UserDAO();
 $result=$ud->getAllWhere('id>10');
 foreach ($result as $row){
   echo '<br/>'.$row['id'].' '.$row['username'];
}
?>

...it doesn't work. The error is:

PDOStatement::execute() expects parameter 1 to be array, string given

How can I pass the whole WHERE condition as a parameter? I would also like to make another step forward and to insert the table name ("users") as a parameter too.

Thanks.

vtomic85
  • 590
  • 1
  • 11
  • 32

0 Answers0