Php datepicker未发布到mysql
我已经尝试了这个论坛上的大部分建议(如果不是全部的话),以及其他一些建议,但我仍然得到了MySQL DB中的0000-00-00,尽管它回显了正确的格式。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.
以下是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);`