首页 文章

Postgresql SELECT没有硬编码项

提问于
浏览
0

我有一个简单的PostgreSql查询,看起来像:

$params = array();

if ($audienceId === x) {
  // all teachers
  $pullRecipients = $db -> prepare(
    "SELECT email FROM app.employees WHERE emp_cat_id = 1 AND active is true");
}

$pullRecipients -> execute($params);

我正在运行基于下拉选择的查询,因此,例如,如果用户选择 TEACHERS ,则运行上述查询 . 如何选择 emp_cat_id 甚至类别名称 TEACHERS ,而无需在查询中对其进行硬编码?

1 回答

  • 0

    将陈述改为类似的东西

    SELECT email
    FROM app.employees
    WHERE emp_cat_id = ? AND active IS true
    

    并确保你的 $params 等于 array($POST["drop-down_value])

    如果你想允许文本值 - 使用join,例如:

    SELECT email
    FROM app.employees
    WHERE emp_cat_id = (SELECT id FROM emp_cat WHERE name = ?)
      AND active IS true
    

相关问题