MYSQL PHP PDO - 动态添加WHERE PlaceHolder子句

时间:2014-01-21 23:24:08

标签: php mysql select pdo

我需要在PDO中插入一个MySQL WHERE Con​​dition作为占位符。条件取决于您的性别偏好(社交网站) - 下面创建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 亚当

1 个答案:

答案 0 :(得分:8)

你做不到。

占位符只能用于传递参数。就是这样 - 没有表达式,没有数据库对象名称(表,列,别名,存储过程......),只是一个文字值。

相关问题