Мои строки таблицы - это данные (время даты), имя (var char), адрес (var char)
$command=Yii::app()->db->createCommand();
$command->from('news_hamkar');
$command->where(date('Y-m-d').' < DATE_ADD(data, INTERVAL -2 DAY)');
$command->order('news_hamkar.data desc');
$command->queryAll();
Почему команда Yii работает правильно?
Дата не цитируется, в результате чего ваше условие является неправильным. Если запустить сегодня, дата будет равна 2015-03-07. Однако MySQL будет интерпретировать это как арифметику и в конечном итоге со следующим условием:
2005 < DATE_ADD(data, INTERVAL -2 DAY)
Чтобы этого избежать, передайте дату в качестве параметра:
$command=Yii::app()->db->createCommand();
$command->from('news_hamkar');
$command->where(':date < DATE_ADD(data, INTERVAL -2 DAY)');
$command->order('news_hamkar.data desc');
$command->queryAll(true,array('date'=>date('Y-m-d'));
Я вижу 2 проблемы с кодом, о котором идет речь. Я предполагаю, что вы пытаетесь использовать тот же код в своем приложении.
1. вам не хватает инструкции select
.
2. Где вы сохраняете результаты, возвращаемые queryAll()
? попробуй это
$command=Yii::app()->db->createCommand();
$command->select('*');//added select statement
$command->from('news_hamkar');
$command->where(date('Y-m-d').' < DATE_ADD(data, INTERVAL -2 DAY)');
$command->order('news_hamkar.data desc');//save results to $results
$results=$command->queryAll();