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

[已解决] DB操作,delete报错

[复制链接]
发表于 2010-2-7 21:31:02 | 显示全部楼层 |阅读模式
本帖最后由 zzzvvv 于 2010-2-7 23:34 编辑

Controllers:
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
class Deletenews extends Controller {

    function deletenews() {
        parent::Controller();
        $this->load->helper('url');
        $this->load->database();
    }

    function del() {
        $id=$this->uri->segment(3);
        $this->load->model('deletemodel');
        $data = $this->deletemodel->deletenews1($id);
        if($data) {
            echo 'ok';
        }
    }
}
?>
Model:

<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
class Deletemodel extends Model {
    function deletemodel() {
        parent::Model();
        $this->load->database();
    }

    function deletenews1($newsid) {
       // //$this->db->set('id' , $newsid);
        
        $this->db->where('id', (int)$newsid);
        $ret = $this->db->delete('news');
        return $ret;
    }
}
?>

$newsid值可正常取得,便是执行到
$this->db->where('id', $newsid);
这句时报错:
Fatal error: Call to a member function where() on a non-object in E:\php_project\CIDemo\app\models\deleteModel.php on line 13
有谁知道这是什么原因吗?

我正参照论坛 上的
codeigniter数据库基本操作实例篇(一)——插入数据 一步一步跟着学
来一步一步的学习,
问题发生在删除数据时
-----------------------------------------------------------------
报错的时候在controllers里没有这一句   $this->load->database();
我认为在controllers里没有执行DB操作,所以不用load database
执行删除时就会报上面的错误,
加上$this->load->database(); 后,执行正常

请问HEX,这是什么?
我是在看了你的回复后,加上那一句解决了问题
发表于 2010-2-7 22:49:18 | 显示全部楼层
没开AR,请在config/database.php设置启用ar
 楼主| 发表于 2010-2-7 22:54:26 | 显示全部楼层
我也发现好像是AR没开!
发表于 2010-2-7 23:22:41 | 显示全部楼层
没加载数据库?
$this->load->database();
 楼主| 发表于 2010-2-8 07:50:03 | 显示全部楼层
谢谢HEX以及visvoy
问题已经解决

本版积分规则