Php 如何将日期插入数据库?

Php 如何将日期插入数据库?,php,mysql,date,Php,Mysql,Date,我已经查过怎么做了,但我就是不知道怎么做。请告诉我如何将月、日和年组合成一个日期插入mysql数据库。我的问题不是向数据库发送信息。我的问题是我将3个单独的字段(月、日、年)发送到数据库。请确切地告诉我在哪里放置您推荐的代码。 这是我的密码: <?php function register_user($register_data) { array_walk($register_data, 'array_sanitize'); $fields = '`' . implode('`, `',

我已经查过怎么做了,但我就是不知道怎么做。请告诉我如何将月、日和年组合成一个日期插入mysql数据库。我的问题不是向数据库发送信息。我的问题是我将3个单独的字段(月、日、年)发送到数据库。请确切地告诉我在哪里放置您推荐的代码。 这是我的密码:

<?php
function register_user($register_data) {
array_walk($register_data, 'array_sanitize');

$fields = '`' . implode('`, `', array_keys($register_data)) . '`';
$data = '\'' . implode('\', \'', $register_data) . '\'';

mysql_query("INSER INTO `users` ($fields) VALUES ($data)");
}
?>

<form action="" method="post">
    <ul>
        <li>
            <select name="month">
                <option value="01">January</option>
                //all the other month options
            </select>
            <select name="day">
                <option value="01">1</option>
                //all the other days
            </select
            <select name="year">
                <option value="2013">2013</option>
                //more year options
            </select>
        </li>    
        <li>
    <input type="submit" name="registrationform" value="Sign up">
    </li>
    </ul>
</form>

<?php
if (empty($_POST) === false && empty($errors) === true){
    $register_data = array(
        'Month'     => $_POST['month'],
        'Day'       => $_POST['day'],
        'Year'      => $_POST['year']
    );

    register_user($register_data);
    //redirect
    exit();
?>

  • 一月 //所有其他月份的选择 1. //其他日子
在MySQL中将您的生日列设为日期或日期时间字段,然后按如下方式插入:

$_POST['year'] . "-" . $_POST['month'] . "-" . $_POST['day']

以年、月、日(按顺序)为单位,在每一个日期之间放置一个连字符(ASCII字符#45)。就这样

注意你有4个数字表示年,两个数字表示月,两个数字表示日(也称为数字)

重要的是,您的结果应如以下示例所示:

October 3rd 2011    :=    2011-10-03
1st Feb '13         :=    2013-02-01
还要注意不要有不存在的日期,比如31号。十一月的或类似的

以及:


。它们不再得到维护。看到了吗?相反,学习,并使用,或-将帮助您决定哪一个。如果您选择PDO,.

我会像这样连接生日字段:

$birthday = $_POST['year'] . '-' . $_POST['month'] . '-' . $_POST['day'];
然后您可以插入它:

mysql_query("INSERT INTO users (birthday) VALUES ('" . $birthday . "')");
你有很多方法

您可以在
int
类型的数据库中将它们拆分为三个不同的字段

您可以将该字段用作日期

CREATE TABLE `date` (
  `dp_date` date NOT NULL default '0000-00-00',
) ;

$query_manual = "INSERT INTO date(dp_date)
VALUES ($_POST['year']-$_POST['month']-$_POST['day']')";


然后,表中需要一个名为“生日”的列,它的类型应该是“日期”

我建议您在
<?php
function register_user($register_data) {
$register_data['birthday'] = $register_data['year'] . '-' . $register_data['month'] . '-' . $register_data['day'];
unset($register_data['year']);
unset($register_data['month']);
unset($register_data['day']);
array_walk($register_data, 'array_sanitize');

$fields = '`' . implode('`, `', array_keys($register_data)) . '`';
$data = '\'' . implode('\', \'', $register_data) . '\'';

mysql_query("INSER INTO `users` ($fields) VALUES ($data)");
}
?>