在PHP select查询中动态设置“ where”条件的最佳方法是什么?

时间:2019-01-21 04:51:55

标签: php sql

我有一个保存日历事件的数据库。在handle_events.php?load = 1上,我希望文件回显所有事件。如果将诸如'start = 20190121'或'end = 20190121'之类的内容附加到URL,我希望文件仅回显此时间轴中的事件。我想到的解决方案是:

  1. 在每个if-else中为每个可能的设置编写整个查询。 ->如果选项增加,这几乎是不可能的。

  2. 设置

    $ query =“从某个表中选择第一个条件”

    ,并在每个选项添加项后附加“ AND option = value” ->这在多个选项上都可以接受,但是如果没有一个必要条件怎么办?那么该语句将类似于“〜where AND option = value”,并且会引发语法错误。

这两种方式都有缺点并且看起来有些原始。会有更优雅的方法吗?

2 个答案:

答案 0 :(得分:1)

$where=""
if(isset($_GET[‘start’]))
{
if($where=='')
{
$where.=" option=value"
}
else
{
$where.="AND  option=value"
}
}

答案 1 :(得分:0)

创建一个条件语句,检查是否存在$ _GET [‘您的日期’]并相应地格式化查询。

if(isset($_GET[‘start’])) {
 Show one query condition
} else {
 Show default state of query
}