zzzvvv 发表于 2010-2-7 21:31:02

DB操作,delete报错

本帖最后由 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,这是什么?
我是在看了你的回复后,加上那一句解决了问题

visvoy 发表于 2010-2-7 22:49:18

没开AR,请在config/database.php设置启用ar

zzzvvv 发表于 2010-2-7 22:54:26

我也发现好像是AR没开!

Hex 发表于 2010-2-7 23:22:41

没加载数据库?
$this->load->database();

zzzvvv 发表于 2010-2-8 07:50:03

谢谢HEX以及visvoy
问题已经解决
页: [1]
查看完整版本: DB操作,delete报错