请教一个关于shopnc中update写法的问题

ziluopao 发布于 2016/05/26 18:02
阅读 260
收藏 0
PHP

@刘万杰 你好,想跟你请教个问题:

比如microshop_store这个表中,准备更新其中的click_count这个字段的值,每次更新是在原数的基础上做更新,这样的update怎么写,当然不能用原生sql写,要用shopnc自带的sql方法写

我是这样写的,但是不知为啥不行呢


 $model->table("micro_store")->where(array('microshop_store_id'=>
$_GET['click_id']))->update(array('click_count'=>'num+1'));

主要是后面这句update(array('click_count'=>'num+1')不会写


加载中
0
螃蟹大叔
螃蟹大叔

http://share.weiyun.com/87fae62ba788b483220f143a67749af4


$model->table("micro_store")->where(array('microshop_store_id'=>
$_GET['click_id']))->update(array('click_count'=>array("exp","num+1")));
//他源码是这样写的
protected function parseValue($value) {
        if(is_string($value) || is_numeric($value)) {
            $value = '\''.$this->escapeString($value).'\'';
        }elseif(isset($value[0]) && is_string($value[0]) && strtolower($value[0]) == 'exp'){
            $value   =  $value[1];
        }elseif(is_array($value)) {
            $value   =  array_map(array($this, 'parseValue'),$value);
        }elseif(is_null($value)){
            $value   =  'null';
        }
        return $value;
    }

protected function parseSet($data) {
        foreach ($data as $key=>$val){
            $value   =  $this->parseValue($val);
            if(is_scalar($value))
                $set[]    = $this->parseKey($key).'='.$value;
        }
        return ' SET '.implode(',',$set);
    }






ziluopao
ziluopao
多谢万杰哈!!!
0
ziluopao
ziluopao

引用来自“刘万杰”的评论

http://share.weiyun.com/87fae62ba788b483220f143a67749af4


$model->table("micro_store")->where(array('microshop_store_id'=>
$_GET['click_id']))->update(array('click_count'=>array("exp","num+1")));
//他源码是这样写的
protected function parseValue($value) {
        if(is_string($value) || is_numeric($value)) {
            $value = '\''.$this->escapeString($value).'\'';
        }elseif(isset($value[0]) && is_string($value[0]) && strtolower($value[0]) == 'exp'){
            $value   =  $value[1];
        }elseif(is_array($value)) {
            $value   =  array_map(array($this, 'parseValue'),$value);
        }elseif(is_null($value)){
            $value   =  'null';
        }
        return $value;
    }

protected function parseSet($data) {
        foreach ($data as $key=>$val){
            $value   =  $this->parseValue($val);
            if(is_scalar($value))
                $set[]    = $this->parseKey($key).'='.$value;
        }
        return ' SET '.implode(',',$set);
    }






最后是这么写的$model->table("micro_store")->where(array('microshop_store_id'=>$_GET['click_id']))->update(array('click_count'=>array('exp','click_count+1')));
螃蟹大叔
螃蟹大叔
嗯,我就说那个num是哪里来的字段,你这样写肯定是想在那个字段上自增
返回顶部
顶部