无法使用php将日期插入数据库

无法使用php将日期插入数据库,php,mysql,sql,date,Php,Mysql,Sql,Date,我未能将日期值插入数据库。它总是向我显示“0000-00-00”,我设置的日期结构是date,它是“yyyy-mm-dd”。我试着调试我的查询,除了日期值不能插入数据库外,一切都正常。我的密码有什么错误吗 这是我的密码: $from = $_POST['from']; $newFrom = date("Y-m-d",strtotime($from)); // Get default database object $db = JFactory::getDBO(); // Get a new

我未能将日期值插入数据库。它总是向我显示
“0000-00-00”
,我设置的日期结构是date,它是
“yyyy-mm-dd”
。我试着调试我的查询,除了日期值不能插入数据库外,一切都正常。我的密码有什么错误吗

这是我的密码:

$from = $_POST['from'];

$newFrom = date("Y-m-d",strtotime($from));
// Get default database object
$db = JFactory::getDBO();

// Get a new JDatabaseQuery object
$query = $db->getQuery(true);

$tmpIds = array();

foreach($courseID as $cId) {
    $tmpIds[] = $db->quote($cId);
    //sanitize the input
}

$courseID1 = implode(',',$tmpIds);

// Build the query
$query->select($db->quoteName('courseid'));
$query->from($db->quoteName('intake'));
$query->where($db->quoteName('campusid').'='. $db->quote($campusID));

$query->where($db->quoteName('courseid').'IN('.$courseID1.')');

// Set the query for the DB oject to execute
$db->setQuery($query);
// Get the DB object to load the results as a list of objects
$results = $db->loadObjectList(); 

if($results){

    $query = "UPDATE intake SET startdate = $newFrom WHERE campusid = '$campusID'";
    echo "$query";
    $db->setQuery( $query );
    $db->query();

}

else{ echo 'Error';}

}

日期字符串周围缺少引号:

$query = "UPDATE intake SET startdate = $newFrom WHERE campusid = '$campusID'";
应该是:

$query = "UPDATE intake SET startdate = '$newFrom' WHERE campusid = '$campusID'";

数据库中“startdate”字段的类型是什么?因为您处理的是字符串,所以请将变量用引号括起来。@Fred ii-这次我快了一点!;)我伸手去拿我的咖啡@johncode+1;-)我在评论中按了“回车”键,就在这时;-)如果数据库中的字段类型为日期/时间,则不需要。哦,是的,有必要@pc shooter。我们处理的是字符串,而不是整数。否则,它将被解释为一个数学方程
Y-m-d
-年减去月,减去日。@Fred-ii你说得对。。。。因为大部分时间我只保存时间戳。。。但是这个问题不是已经被回答过很多次了吗?@pc shooter(Unix)时间戳没有连字符,只有数字,所以理论上你是正确的。;-)