如何解决如何使用输入的DOB存储该人的年龄,但不起作用
此处DOB具有输入文本字段的值
$DOB = $_POST['DOB'];
$today = date("d-m-Y");
$diff = date_diff(date_create($DOB),date_create($today));
echo 'Age is '.$diff->format('%y');
$a = $diff->format('%y');
$age = $_POST[$a];
这是插入查询
$sql="INSERT INTO details (`id`,`email`,`member_id`,`name`,`DOB`,`gender`,'age')
VALUES (NULL,'$email2','$member_id','$name','$DOB','$gender','$age')";
$query=mysqli_query($con,$sql);
我认为这是静态问题,我想它需要使用输入文本值动态完成吗?如何获取输入的文本值,以便存储从DOB字段中输入的生日起的年龄?
解决方法
我不建议将年龄存储在数据库中。这是一个派生信息,其值会随着时间变化。存储后的1年内,它将变得过时。
您可以使用大多数数据库中提供的简单日期函数轻松地直接在查询中计算年龄(当然,假设您将dob
存储为合法的date
数据类型)。假设您正在运行MySQL:
timestampdiff(year,dob,current_date) as age
如果要经常键入此内容,则可以考虑创建一个视图:
create view v_details as
select d.*,timestampdiff(year,current_date) as age
from details d
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。