php – 将出生日期添加到数据库

前端之家收集整理的这篇文章主要介绍了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="--" 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);

猜你在找的PHP相关文章