问题描述
此处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