加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

php – 在Yii中更新查询

发布时间:2020-12-11 23:53:22 所属栏目:MySql教程 来源:网络整理
导读:我在Yii中有一个要求,我必须根据某些条件更新一个表.我必须使用new_val = previous_value new_val更新列.但是代码没有按预期工作. 我试过的代码是 $update = Yii::app()-db-createCommand()-update('tbl_post',array('star'=('star' + 1),'total'=('total' +

我在Yii中有一个要求,我必须根据某些条件更新一个表.我必须使用new_val = previous_value new_val更新列.但是代码没有按预期工作.

我试过的代码是

$update = Yii::app()->db->createCommand()
->update('tbl_post',array('star'=>('star' + 1),'total'=>('total' + $ratingAjax)),'id=:id',array(':id'=>$post_id));

在正常查询中,查询将是

UPDATE tbl_post set star= star + 1,total = total + '$ratingAjax' where id = 1

谁知道哪里出错了? 最佳答案 请尝试以下方法:

$update = Yii::app()->db->createCommand()
    ->update('tbl_post',array(
            'star'=>new CDbExpression('star + 1'),'total'=>new CDbExpression('total + :ratingAjax',array(':ratingAjax'=>$ratingAjax))
        ),array(':id'=>$post_id)
    );

使用CDbExpression将允许您发送表达式以更新列值.

见:http://www.yiiframework.com/doc/api/1.1/CDbCommand#update-detail

并且:http://www.yiiframework.com/doc/api/1.1/CDbExpression#__construct-detail

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读