【问题标题】:Checking if two variables are empty检查两个变量是否为空
【发布时间】:2017-02-08 03:01:33
【问题描述】:

我正在尝试设置几个elseif 语句来查看某些输入字段是否为空。这些输入字段的值声明为 $date1 和 $date 2。如果这些字段不为空,则 MySQL 查询将选择这两个日期之间的所有数据。

具体来说,我的病情有问题。这是我目前所拥有的:

$keyword = esc_sql($_GET['keyword']);
$date1 = esc_sql($_GET['date1']);
$date2 = esc_sql($_GET['date2']);

$sql = "SELECT * FROM tablename WHERE ";

if(!empty($keyword)){
    $sql .= " name LIKE '%$keyword%'";
}

elseif(!empty($date1)){
    $sql .= " introDate = '$dateIntro1'";
}

elseif (!empty($date1) && !empty($date2)) {
    sql .= " introDate BETWEEN '$date1' AND '$date2'"
}

但是,elseif 条件似乎不起作用,因为当我添加 SQL 查询时,我没有得到任何结果。我已经测试了 SQL 查询,它工作正常。我可能会错过什么?

【问题讨论】:

  • 我没有看到你在任何地方执行该查询..
  • $date1 & $date2 变量集在哪里
  • 这不是有效的 PHP。您不能只将 SQL 放在 PHP 脚本中。你需要对如何使用mysqli函数做一些研究。
  • 你需要一个if 才能获得elseif
  • “我可能遗漏了什么?” - 错误检查,上帝只知道AND 'date2' 的意思。

标签: php


【解决方案1】:

date2之前缺少$,更新为:

 SELECT * FROM `tablename` WHERE date BETWEEN '$date1' AND '$date2'

当然,您需要将查询发送到数据库,例如 mysqli_query 或您使用的任何驱动程序。

还要注意 SQL 注入,以防变量来自用户输入。而是一般使用变量绑定。

【讨论】:

    猜你喜欢
    • 2012-02-05
    • 2011-03-20
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多