如何准备插入MySQL DATE字段的数据?

时间:2012-01-08 22:18:30

标签: php mysql

我在表单上有3个下拉菜单供用户选择他们的生日。一个用于约会,一个用于月份,一个用于一年。

现在我正在准备用户给出的日期,如下所示:

$date = sanitize($_POST['year']).'-'.sanitize($_POST['month']).'-'.sanitize($_POST['day']);

并在DATE字段中将$date插入数据库。我希望能够根据这个字段的值进行操作,比如按日期排序等......

这是准备数据的正确方法还是没有连字符?

2 个答案:

答案 0 :(得分:1)

根据MySQL manual page on DATE,正确的格式为'YYYY-MM-DD',因此看起来好像可以使用,并且允许您使用所有MySQL date and date comparison operations and functions

但是,您应该在将用户输入发送到数据库之前考虑验证用户输入(绝不相信用户输入的安全性或有效性)。也许你应该通过PHP的date()来运行它,以确保你插入的日期是有效的:

$date = date('Y-m-d', strtotime($_POST['month'].'-'.$_POST['day'].'-'.$_POST['year']));

答案 1 :(得分:1)

我同意,我会使用strtotime转换文本,然后验证它,虽然你有3个下拉可能像2月30日那样的数据可能会让事情失效。