как я могу решить проблему с andWhere с symfony/doctrine и odbc?

Следуя руководству по symfony (1.4.4), я получаю сообщение об ошибке с ODBC/mssql 2008.

SQLSTATE[07002]: неверное поле COUNT: 0 [Microsoft][SQL Server Native Client 10.0]неправильное поле COUNT или синтаксическая ошибка (SQLExecute[0] в ext\pdo_odbc\odbc_stmt.c:254). Неудачный запрос: "SELECT [j].[id] AS [j__id], [j].[category_id] AS [j__category_id], [j].[type] AS [j__type], [j].[company] AS [ j__company], [j].[logo] AS [j__logo], [j].[url] AS [j__url], [j].[position] AS [j__position], [j].[location] AS [j__location] , [j].[description] AS [j__description], [j].[how_to_apply] AS [j__how_to_apply], [j].[токен] AS [j__token], [j].[is_public] AS [j__is_public], [ j].[is_activated] AS [j__is_activated], [j].[email] AS [j__email], [j].[expires_at] AS [j__expires_at], [j].[created_at] AS [j__created_at], [j] .[updated_at] AS [j__updated_at] FROM [jobeet_job] [j] WHERE ([j].[category_id] = '2' AND [j].[expires_at] > ?) ORDER BY [j].[expires_at] DESC"

I've narrowed the problem to a line that uses parameters public function getActiveJobs(Doctrine_Query $q = null) { if (is_null($q)) { $q = Doctrine_Query::create() ->from('JobeetJob j'); }

    //$q->andWhere('j.expires_at > \''.date('Y-m-d H:i:s', time()).'\'');<-- this works
    $q->andWhere('j.expires_at > ?', date('Y-m-d H:i:s', time())); //<-- this line has problem
    $q->addOrderBy('j.expires_at DESC');

    return $q->execute();
}

Может кто-то указать мне верное направление? Спасибо.


person JaSk    schedule 18.05.2010    source источник
comment
Это работает, когда вы заключаете функцию date() во вторую строку, например, с апострофами, как в первой строке?   -  person Alec    schedule 19.05.2010
comment
Да, это работает так, но это не очищает ввод базы данных.   -  person JaSk    schedule 19.05.2010


Ответы (1)


Я «решил это», изменив на

$q->andWhere('j.expires_at >=?', date('Y-m-d H:i:s' time()));

Это временное решение, и оно работает на данный момент, но я хотел бы знать, почему оно не работает только с >. Спасибо

person JaSk    schedule 19.05.2010
comment
Если это представляет интерес, я могу без проблем использовать следующее (MySQL): $q-›andWhere('date_created › ?', date('Ym-d', strtotime('30 days ago'))) ; Странная проблема. - person Tom; 19.05.2010