来自数据库的Unix_Timestamp

时间:2016-01-15 14:23:05

标签: php mysql

在我的网站上,我制作了自动发票系统。它将为某个月的特定用户生成发票。您可以选择用户,月份和年份,然后单击“生成”。

但是,在我的MYSQL数据库中,我使用Unix时间戳存储了用户在日期订购的产品。现在我想通过检查Unix时间戳是否匹配来加载某个月的所有产品。但它不起作用。

我的代码:

require "connect.php";
$create_by=$_GET['user'];
$jaar=$_GET['jaar'];
$maand=$_GET['maand'];
$number = cal_days_in_month(CAL_GREGORIAN, $maand, $jaar);
$result = mysql_query("SELECT *
FROM `mrbs_entry`
WHERE start_time >= UNIX_TIMESTAMP(".$jaar."-".$maand."-01)
AND start_time <= UNIX_TIMESTAMP(".$jaar."-".$maand."-".$number.")
AND create_by = '".$create_by".' 
ORDER BY `start_time`, `room_id`");

日期是通过链接给出的,例如user,maand,jaar。

maand是月份,jaar是年份。

1 个答案:

答案 0 :(得分:3)

您没有在查询中引用日期值,因此有效地构建了

... WHERE start_time >= UNIX_TIMESTAMP(2016-01-15)

这不是一个日期值,它是一个双重数学减法,你真正执行UNIX_TIMESTAMP(2000),这可以追溯到1970年。

WHERE start_time >= UNIX_TIMESTAMP('".$jaar."-".$maand."-01')
                                   ^-----------------------^

请注意指示的引号。另请注意,您已为sql injection attacks开放,因此请尽量使用服务器pwn3d。