我需要在PDO中插入一个MySQL WHERE Condition作为占位符。条件取决于您的性别偏好(社交网站) - 下面创建WHERE条件代码:
if($_SESSION['interestedMales'] && $_SESSION['interestedFemales']) {
return '(a.profile_gender=0 OR a.profile_gender=1)';
}elseif($_SESSION['interestedMales']) {
return '(a.profile_gender=1)';
}elseif($_SESSION['interestedFemales']) {
return '(a.profile_gender=0)';
}else{
return '(a.profile_gender='.$_SESSION['gender'].')';
}
返回变量 - $ pdoGenderCondition
接下来我将其添加到PHP PDO语句中:
$sql='SELECT a.userinfo
FROM login AS a
WHERE a.photoidvisible=1 AND ? LIMIT 9;';
echo $sql;
$pds=$database_users->pdo->prepare($sql); $pds->execute(array($pdoGenderCondition)); $rows=$pds->fetchAll();
我跑的地方没有结果。
如果我直接将$ pdoGenderCondition放入PHP PDO语句中就可以了。
我猜你不能把这种WHERE子句暂时放到PDO中,但我相信我以前见过它。
我可以使用多个SELECT语句,但宁可使用一个。
任何建议都将不胜感激。
THX 亚当
答案 0 :(得分:8)
你做不到。
占位符只能用于传递参数。就是这样 - 没有表达式,没有数据库对象名称(表,列,别名,存储过程......),只是一个文字值。