Yii命令不起作用

时间:2015-03-07 14:01:54

标签: php yii

我的表行是数据(日期时间),名称(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 个答案:

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