代码之家  ›  专栏  ›  技术社区  ›  JD Isaacks

在PHP PDO中,有没有方法使param成为可选的?

  •  1
  • JD Isaacks  · 技术社区  · 14 年前

    $qry = 'SELECT p.id FROM products p 
            WHERE p.type = :type AND p.parent = :parent';
    

    如果我想让“type”成为可选的,那么我知道的唯一方法就是这样做:

    $qry = 'SELECT p.id FROM products p 
            WHERE p.parent = :parent';
    
    if(isset($type))
    {
        $qry .= 'AND p.type = :type';
    }
    

    最好的方法是什么?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Phill Pafford    14 年前

    您可能还需要检查空白值

    if(isset($type) && $type != '') {
        $qry .= 'AND p.type = :type';
    }
    
        2
  •  0
  •   mario    14 年前

    从理论上讲,这可能是可行的:

     AND :type IN (NULL, p.type)