在PHP中,我想按我的数据库日期列(时间戳类型)中的日期过滤数据

时间:2018-11-10 05:48:40

标签: php mysql

问题是我想在特定日期获取数据。

这是我的表格

<form>
<label>Enter the date</label>
    <input type="date" name="date">
  </form>
if(isset($_POST['submit']))
   {
     $date = $_POST['date'];
     $query = "select * from user_date where date ='$date' ";
     }

在数据库日期列(时间戳类型)中,如果我编写此代码,则此代码不起作用,因为我没有打发时间。如果我打发时间,则此代码起作用。

1 个答案:

答案 0 :(得分:0)

首先,您的代码对SQL injection相关的攻击开放。请学习使用Prepared Statements

现在,这里的问题是$date的值仅是日期(例如:2018-11-10),而不是日期时间;而表的date列是日期时间(Timestamp数据类型)。

您需要使用Date()函数将date列仅转换为日期,以进行检查

$query = "select * from user_date 
          where DATE(date) = '" . $date . "'";

另外,请阅读:Why is SELECT * considered harmful?