[已解决]CActiveRecord的updateCounters方法好像有bug

我有一张sitemaster的表,结构如下:



CREATE TABLE `sitemaster` (


  `sitemaster_id` int(11) NOT NULL auto_increment,


  `username` char(20) NOT NULL,


  `password` char(40) NOT NULL,


  `qq` int(15) NOT NULL,


  `mobile` int(15) NOT NULL,


  `status` tinyint(1) NOT NULL default '1',


  `deleted` tinyint(1) NOT NULL default '0',


  `idcard` char(18) default NULL,


  `lastlogin` datetime default NULL,


  `lastloginip` char(15) default NULL,


  `created` datetime NOT NULL,


  `sites` tinyint(2) default '0',


  `updated` datetime default NULL,


  `remark` char(255) default NULL,


  PRIMARY KEY  (`sitemaster_id`)


) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;


其中sites字段表示站长所拥有的站点数,每次增加站点的时候加一下,用下面的代码:



Sitemaster::model()->updateCounters(array('sites'=>1, 'sitemaster_id=:sitemaster_id', array(':sitemaster_id'=>1)));


结果所有记录的sites字段值都被加了1,查看sql代码,发现conditions并没有生效,生成如下的SQL语句:



UPDATE `sitemaster` SET `sites`=`sites`+1


是否用updateCounter方法有什么限制?还是bug?呵呵,麻烦强帮忙解答一下,谢谢 :D

PS:Yii版本为今天刚升级的1.0.6

你的参数有错误。请仔细看API。

解决了,原来是’sites’=>1后面忘记写括号了 ;D谢谢强的回复