用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2391|回复: 4
收起左侧

AR类能不能实现这样的UPDATE语句,还是要逼我用query了

[复制链接]
发表于 2012-6-8 21:45:19 | 显示全部楼层 |阅读模式
我要的UPDATE语句
SQL复制代码
UPDATE `pre_credits` SET `user_name` = '贝壳测试帐号', `user_credits` = user_credits+5
复制代码


Credits_model.php
PHP复制代码
 
        function MinusCredit($username)
                {
        $query=$this->db->query("SELECT * FROM `pre_credits` WHERE `user_name` LIKE '$username' AND `user_credits` >= 3");
        if($query->num_rows() > 0)
        {
                $data = array(
        'user_name' => $username ,
        'user_credits' => user_credits-3
         );
                $this->db->update('pre_credits', $data);
        return 1;
        } else {
        return -1;
        }
                }
 
复制代码

Question.php(Contrller)
PHP复制代码
 
                if(@$data['user_name']!=null){
                $this->load->model('Credits_model');
                $this->load->database();
                $tmp[3]=$this->Credits_model->MinusCredit($data['user_name']);
                if(@$tmp[3]!=-1){
                echo '金币-3';
                } else {
                echo '金币不足,无法操作!';
                }
                }
 
复制代码

万能的AR类真的这样倒在一个小小的SQL运算了吗,反正我是不信{:soso_e130:}
发表于 2012-6-8 22:02:05 | 显示全部楼层
->set('user_credits', 'user_credits+5', FALSE)->xxxxxxxxxxxxxxxxxxx
仔细看手册
 楼主| 发表于 2012-6-8 22:05:22 | 显示全部楼层
jeongee 发表于 2012-6-8 22:02
->set('user_credits', 'user_credits+5', FALSE)->xxxxxxxxxxxxxxxxxxx
仔细看手册

真心木有看到,能看的都看了
发表于 2012-6-10 10:41:38 | 显示全部楼层
自定义 key/value 方法:
你可以在第一个参数中包含一个运算符,以便控制比较:
$this->db->where('name !=', $name);
$this->db->where('id <', $id);
// 生成: WHERE name != 'Joe' AND id < 45

希望你仔细看下$this->db->where();http://codeigniter.org.cn/user_g ... _record.html#update
 楼主| 发表于 2012-6-10 11:50:01 | 显示全部楼层
whosheng 发表于 2012-6-10 10:41
自定义 key/value 方法:
你可以在第一个参数中包含一个运算符,以便控制比较:
$this->db->where('name !=', ...

當初貌似寫Query的時候少個Where,直接SET,下場你懂得

本版积分规则