插入两个独立的字段到一个记录php mysql
我已经创建了一个计划使用php和jquery在我的应用程序。我有一个部分,用户输入开始日期和开始时间,另一个部分输入结束日期和结束时间。该字段都为单独的,就像这样:插入两个独立的字段到一个记录php mysql
<input type="text" name="dateFrom" id="dateFrom"> <!-- datepicker plugin -->
<input type="text" name="time_from" id="timeFrom"> <!-- timepicker plugin -->
<input type="text" name="dateTo" id="dateTo"> <!-- datepicker plugin -->
<input type="text" name="time_to" id="timeTo"> <!-- timepicker plugin -->
我想知道的是,一旦用户输入上述信息,以及将数据提交,而不是在表中创建单独列到数据库中,有无论如何将dateFrom
和timeFrom
字段插入到一个名为start_time
的数据库列中作为UNIX时间戳,并且对于dateTo
& timeTo
字段也是如此。
任何人都可以给我任何想法,我会如何做到这一点?
可以使用strtotime
组合日期和时间,以在插入之前获取UNIX时间戳。
$dateFrom = "2013-05-13";
$timeFrom = "13:52";
$fromStamp = strtotime("$dateFrom $timeFrom");
附注:
m/d/y
或d-m-y
格式日期是由寻找的各种组件之间的分隔符消除歧义:如果隔板是斜线(
/
),则美国m/d/y
假设;而如果分隔符是破折号(-
)或点(.
),则假定欧洲d-m-y
格式。为避免潜在的歧义,最好在可能的情况下使用ISO 8601(
YYYY-MM-DD
)日期或DateTime::createFromFormat()
。
你已经快了一点。是的只是尝试把你的输入数据转换成这种格式“2013-05-13 00:01”,并将它存储在一个DateTime列中 – Ello 2013-05-13 15:09:27
喜欢的东西
INSERT INTO yourtable (start_time, end_time)
VALUES (UNIX_TIMESTAMP('$dateFrom $timeFrom'), UNIX_TIMESTAMP('$dateTo $timeTo'))
会做,假设你的$ dateFrom是yyyy-mm-dd
,和$ timeFrom是hh:mm:ss
。当然,如果您直接将表单字段填充到查询中,则会受到SQL注入攻击,但这只是为了向您展示一种您应该这样做的方式。
我唯一犹豫发布这种类型的解决方案是注入的可能性。 – Kermit 2013-05-13 15:10:54
使用参数化查询,php会照顾你的问题。但你仍然不应该直接接受用户的日期,或者有人会试图通过一些堕落的“9999-99-99 99:99:99”或其他任何事情。 – 2013-05-13 15:13:31
连接是你的朋友。 – 2013-05-13 15:07:04