2014-04-26 3 views
-1

Мне не удалось вставить значения даты в базу данных. Он всегда показывал мне "0000-00-00", который я установил на дату, и это было "yyyy-mm-dd". Я попытался отладить мой запрос, и все в порядке, за исключением того, что значения даты не могут вставляться в базу данных. Есть ли какая-то ошибка в моем коде?Не удалось вставить дату в базу данных с помощью php

Вот мой код:

$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';} 

} 
+0

var_dump ($ newFrom); – underscore

+0

Каков тип поля «startdate» в вашей БД? –

+0

Оберните свою переменную в кавычки 'SET startdate = '$ newFrom'', так как вы имеете дело со строками. –

ответ

3

Вы упускаете кавычки вашей строки даты:

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

должно быть:

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

Я нажал «Enter» в своем комментарии так же, как это появилось ;-) –

+0

Если поле в db имеет тип DAte/Time, его не нужно –

+0

О да, это необходимо @ pc-shooter, мы имеем дело со строкой, а не с целым числом. В противном случае это будет интерпретироваться как математическое уравнение. 'Y-m-d' - Год минус месяц, минус день. –

Смежные вопросы