qinhehan 2011-07-01 10:29:37 35524次浏览 6条回复 1 0 0
$update = Yii::app()->db->createCommand()->update('User', 
  array(
    'LogTimes' =>‘LogTimes+1’,
    'LastLogDT'=>new CDbExpression('NOW()'),
    'LastLogIP'=>$loginIp
  ),
  "ID=".$userId
);

这样写可以么??

  • 回复于 2013-12-05 10:01 举报
    public function actionView($id) 
    {
      $post = Post::model()->findByPk($id);
      $post->visits += 1;$post->save();
      $this->render('view', array('post' => $post));
    }
    
    1 条回复
    回复于 2016-08-09 11:34 回复

    这种方式不大好吧,如果瞬间访问量非常大,数据就不准了吧,比如两个用户同时请求增更新的情况

    觉得很赞
  • 回复于 2014-05-05 14:45 举报
    $update = Yii::app()->db->createCommand()->update('User',array('LogTimes' =>new CDbExpression('LogTimes+1'),'LastLogDT'=>new CDbExpression('NOW()'),'LastLogIP'=>$loginIp),"ID=".$userId);
    
    , 觉得很赞
  • 回复于 2014-05-05 14:46 举报

    'LogTimes'=>CDbExpression('LogTimes+1'),

  • 回复于 2016-08-23 11:58 举报

    ‘LogTimes+1’ 实例化成 yii\db\Expression 对象试试,不过都好久之前的提问了 233

    , 觉得很赞
  • 回复于 2016-10-10 15:33 举报

    $update = Yii::app()->db->createCommand()->update('User',
    array(

    'LogTimes' =>new Expression('COALESCE("LogTimes",0)+1'),
    'LastLogDT'=>new CDbExpression('NOW()'),
    'LastLogIP'=>$loginIp
    

    ),
    "ID=".$userId
    );

              函数COALESCE 是防止字段值一开始为null时候的处理
    
  • 回复于 2019-01-15 15:31 举报

    $num = 1;// 字段加一
    $num = 1-; // 字段减一
    Model::updateAllCounters(['nums' => $num],['id' => 1]);

    觉得很赞
您需要登录后才可以回复。登录 | 立即注册