如何将WHERE条件作为PDO预处理语句参数传递?

时间:2016-02-22 15:06:05

标签: php mysql pdo prepared-statement where-clause

我正在尝试使用PDO制作一个简单的项目。我有一个带有两个SELECT函数的 UserDAO 类:

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

......而这一个......

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

当我调用函数 getAll()时,它可以正常工作:

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

但是当我尝试使用其他功能时......

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

......它不起作用。错误是:

PDOStatement :: execute()期望参数1为数组,给定字符串

如何将整个WHERE条件作为参数传递?我还想向前迈出一步,并将表名(“users”)作为参数插入。

感谢。

0 个答案:

没有答案