php在mysql中插入出生日期

php在mysql中插入出生日期,php,mysql,forms,phpmyadmin,Php,Mysql,Forms,Phpmyadmin,我正在使用html,表单从用户那里收集数据。然而,我在试图将出生日期保存到数据库时遇到了麻烦。 以下是我试图做的: $dob = $_POST['year'] . '-' . $_POST['month'] . '-' .$_POST['day']; $insertInto = " INSERT INTO `users`.`information` (id, useremail, password, firstname, lastname, gender, dob, telephone) VA

我正在使用html
表单从用户那里收集数据。然而,我在试图将出生日期保存到数据库时遇到了麻烦。 以下是我试图做的:

$dob = $_POST['year'] . '-' . $_POST['month'] . '-' .$_POST['day'];

$insertInto = " INSERT INTO `users`.`information` (id, useremail, password, firstname, lastname, gender, dob, telephone)
VALUES ( NULL, '$_POST[email]','$_POST[password]','$_POST[firstname]','$_POST[lastname]','$_POST[formGender]','$dob', '$_POST[telephone]')";
除了
$dob
,它适用于所有情况,有人能指导我查找错误吗


非常感谢。

在执行查询调用之前,请先检查$dob的值。然后,如果它看起来不错(例如1984-10-10),则将您的dob设置为日期/日期时间

到现在为止,你得到了什么错误?是全部设置为0还是什么


注意:您将面临SQL注入。对于几乎所有的SQL查询,我总是建议使用PDO和准备好的语句

如果您不介意使用unix的epoch,您可以简单地接受用户的输入并执行一个简单的strotime()。它将为您提供更大的灵活性,让您可以使用date()函数将其拉出并显示出来

$dob = "1/1/1985";
$string = strtotime($dob);
然后把它吐出来:

$data = pull epoch result from database
$birthday = date("m/d/Y", $data);

永远不要将用户字符串直接传递给PHP。如果用户输入一封电子邮件,如
NULL);删除表用户--?总是用mysql\u real\u escape\u字符串来转义用户输入。我将用ISSET进行检查,然后进行验证,我只是还没有到那个时候。谢谢你的提示:)这不是一个真实的向量ChrisJ,我碰巧和他分享了名字/姓氏。我会改为这样做:
email=”,firstname=selectpasswordfromusers.information其中useremail=target@email.com“,”,“,”,”)
我得到0000-00-00。我试图回显$dob变量,但当我在phpmyadmin中看到0000-00-00时,它的回显正确。我得到了1997-06-12