Php datepicker未发布到mysql

Php datepicker未发布到mysql,php,mysql,date,datepicker,Php,Mysql,Date,Datepicker,我已经尝试了这个论坛上的大部分建议(如果不是全部的话),以及其他一些建议,但我仍然得到了MySQL DB中的0000-00-00,尽管它回显了正确的格式。 以下是PHP代码: <?php include_once("includes/form_functions.php"); // START FORM PROCESSING if (isset($_POST['submit'])) { // Form has been submitted.

我已经尝试了这个论坛上的大部分建议(如果不是全部的话),以及其他一些建议,但我仍然得到了MySQL DB中的0000-00-00,尽管它回显了正确的格式。
以下是PHP代码:

    <?php
    include_once("includes/form_functions.php");
    // START FORM PROCESSING
    if (isset($_POST['submit'])) { // Form has been submitted.
        $errors = array();
        // perform validations on the form data
        $required_fields = array('location', 'date');
        $errors = array_merge($errors, check_required_fields($required_fields, $_POST));

        $location = trim(mysql_prep($_POST['location']));
        $date = mysql_prep($_POST['date']);
        $adult = mysql_prep($_POST['adult']);
        $child = mysql_prep($_POST['children']);
        $guest = mysql_prep($_POST['guest']);   
        $hg = mysql_prep($_POST['holyghost']);  
        $baptism = mysql_prep($_POST['baptism']);

            if ( empty($errors) ) {
            $query = "INSERT INTO attendance (
            location, date, adult, children, guest, holyghost, baptism
                        ) VALUES (
        '{$location}', {$date}, {$adult}, {$child}, {$guest}, {$hg}, {$baptism} 
                        )"; 
            $result = mysql_query($query, $connection);
            if ($result) {
                $message = "submission completed.";
            } elseif
                ($message = "This form cannot be submitted at this time.");
                 $message .= "<br />" . mysql_error();
            }
        }
   ?>

我认为您需要在日期的insert语句中使用单个代码(')来解决此问题,如下所示

INSERT INTO attendance (
            location, date, adult, children, guest, holyghost, baptism
                        ) VALUES (
        '{$location}', '{$date}', '{$adult}', '{$child}', '{$guest}', '{$hg}', '{$baptism}' 
                        );
在mysql中传递值时,始终使用单个代码(')&mysql_escape_string()函数

  • 使用MySQL的STR_TO_DATE()函数转换字符串:
  • 在用户日期值中插入('''$name',STR_TO_date('$date','%m/%d/%Y'))

  • 将从jQuery接收的字符串转换为PHP时间戳,例如使用strotime():

    $timestamp=STROTIME($U POST[''U date'])

  • 然后:

    使用日期()格式化时间戳:

    使用FROM_UNIXTIME()将时间戳直接传递给MySQL:


    在用户中插入日期值(“”,$name',FROM_UNIXTIME($timestamp))

    我认为这是基于mysql db列类型的。您需要像这样更改$date值

    `$explode_Date=explode("-",$date);`
    
    $date=date(“d-m-Y,mktime(0,0,0,$explode_date[1],$explode_date[0],$explode_date[2]);


    然后尝试

    我不确定,但是如果您的数据库字段是日期,那么您必须以
    YYYY
    格式发送年份。您传递日期的格式是什么?数据库表中的类型是什么?数据库中的格式是YYYY-mm-dd。当我为日期选择器键入yyy时,它给出了20132013-mm-dd。但仍然被拒绝。数据库字段是日期。我认为('))是为了确保它处理字母和数字,以防varchar。@pankaj…我可能在这一点上是错的。我的错是,我回过头来意识到/and-被视为字母值。这是一个简单的修复方法。多大的错误啊。
    $date = date('Y-m-d', $timestamp);
    
    `$explode_Date=explode("-",$date);`