Yii 命令不起作用

Yii command not work

我的 table 行是数据(日期时间)、名称(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 命令不能正常工作?

我发现有问题的代码有 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();

没有引用日期,导致你的 where 条件不正确。如果今天 运行,则日期为 2015-03-07。但是,MySQL 会将其解释为算术运算并以以下 where 条件结束:

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'));