php – 将出生日期添加到数据库
发布时间:2020-12-13 22:36:51 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试在注册表单中添加日,月和年的字段,并将其添加到数据库中的用户记录.所以我说这是形式: div class="form-group" div class="form-inline" div class="form-group pull-right" select name="year" id="year" class="form-control" option value="--
我正在尝试在注册表单中添加日,月和年的字段,并将其添加到数据库中的用户记录.所以我说这是形式:
<div class="form-group"> <div class="form-inline"> <div class="form-group pull-right"> <select name="year" id="year" class="form-control"> <option value="--" selected>Year</option> <?php for($i=date('Y'); $i>1899; $i--) { $birthdayYear = ''; $selected = ''; if ($birthdayYear == $i) $selected = ' selected="selected"'; print('<option value="'.$i.'"'.$selected.'>'.$i.'</option>'."n"); } ?> </select> </div> <div class="form-group pull-right"> <select name="month" id="month" onchange="" class="form-control" size="1"> <option value="--" selected>Month</option> <option value="01">Jan</option> ... <option value="12">Dec</option> </select> </div> <div class="form-group pull-right"> <select name="day" id="day" onchange="" class="form-control" size="1"> <option value="--" selected>Day</option> <option value="01">01</option> ... <option value="31">31</option> </select> </div> </div> </div> 然后在php部分这个 if(!isset($error)){ //hash the password $hashedpassword = $user->password_hash($_POST['password'],PASSWORD_BCRYPT); //create the activasion code $activasion = md5(uniqid(rand(),true)); $dateOfBirth = $_POST['day']."-". $_POST['month']."-".$_POST['year']; try { $stmt = $pdo->prepare('INSERT INTO users (username,password,email,created,active,user_birthday) VALUES (:username,:password,:email,NOW(),:active,:user_birthday)'); $stmt->execute(array( ':username' => $_POST['username'],':password' => $hashedpassword,':email' => $_POST['email'],':active' => $activasion,':user_birthday' => $dateOfBirth )); .... 当我点击注册时,所有内容都被插入数据库,但日期是0000-00-00.我在下拉菜单中选择的内容并不重要. 数据库中user_birthday的字段是DATE.为什么不保存所选内容?
DATE的数据库格式为YYYY-MM-DD,您正在尝试插入DD-MM-YYYY, 这就是为什么它不插入和采取默认值:0000-00-00. 更改: $dateOfBirth = $_POST['day']."-". $_POST['month']."-".$_POST['year']; 至 $dateOfBirth = $_POST['year']."-". $_POST['month']."-".$_POST['day']; 另一种方法: 使用$dateOfBirth数组 $dobArr = array($_POST['year'],$_POST['month'],$_POST['day']); $dateOfBirth = implode('-',$dobArr); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |