【问题标题】:MYSQL PHP PDO - Adding WHERE PlaceHolder Clauses on the flyMYSQL PHP PDO - 即时添加 WHERE PlaceHolder 子句
【发布时间】:2014-02-11 19:35:49
【问题描述】:

我需要在 PDO 中插入一个 MySQL WHERE 条件作为占位符。条件取决于您对性别(社交网站)的偏好 - 下面创建到 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 语句,但宁愿使用一个。

任何建议将不胜感激。

谢谢 亚当

【问题讨论】:

    标签: php mysql select pdo


    【解决方案1】:

    你不能那样做。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-26
      • 2013-04-21
      • 1970-01-01
      • 2016-09-30
      • 2012-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多