0
我想有条件地构建SQL语句并遇到问题。在这种情况下,可能有一个WHERE子句或没有。使用条件SQL执行PDO错误
$sql=null;
$arr='';
if($id != 'all'){
$sql = ' WHERE type = :type AND id=:id';
$arr = array(':type'=>$type,':id'=>$id);
}
$stmt = $dbh->prepare("SELECT * FROM table $sql");
$stmt->execute($arr);
...
如果id等于'all',那么我只想重写没有WHERE子句的sql。 因为我必须传递$ arr来执行,所以当id ='all'时出现下面的错误,因为执行期望值: PHP警告:PDOStatement :: execute()期望参数1是数组,字符串给出
我试着通过执行一个空数组,但也得到一个错误。 如何做到这一点,而不必重写两个完整的sql块,每个块都有自己的执行状态?
谢谢。这就是我现在拥有它的方式,但是人,它看起来必须有一个更好的方式来处理这个。你可能是对的。 – NaN
我想你是对的。 :)我已经记下你的答案。谢谢。 – NaN