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

标签 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' ";
     }

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

最佳答案

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

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

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

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

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

关于php - 在 PHP 中,我想按数据库日期列中的日期过滤数据(时间戳类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53236336/

相关文章:

php - 按相同字段分组并显示为 1 个部门

php - 仅从错误代码获取 MySQL 错误消息

php - bootstrap twitter datepicker + modal - 日历出现在父屏幕而不是模态屏幕

php - 如何使用php将quickbooks桌面数据导入在线mysql服务器

php - 传递 Javascript 数组 -> PHP

php - 有条件 mysqli 日期范围检查以在 sql 中打印价格

PHP/mySQL---选择存在另一个值的最大值

php - 如何选择 MAX id 并将结果转换为 int

mysql - 如何查询双向好友关系?

mysql - PL/pgSQL 中的标记 block