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

Ada*_*dam 1 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'].')';
    }
Run Code Online (Sandbox Code Playgroud)

返回变量 - $ 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();
Run Code Online (Sandbox Code Playgroud)

在哪里运行这个我得不到任何结果.

如果我直接将$ pdoGenderCondition放入PHP PDO语句中就可以了.

我猜你不能把这种WHERE子句放到PDO中,但我相信我以前见过它.

我可以使用多个SELECT语句,但宁愿使用一个.

任何建议将不胜感激.

亚当

zer*_*kms 8

你不能这样做.

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