我的表行是数据(日期时间),名称(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命令不能正常工作?
答案 0 :(得分:0)
我发现有问题的代码存在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();
答案 1 :(得分:0)
日期未被引用,导致您的条件不正确。如果今天运行,日期将是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'));