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

[数据库] insert数据库失败,这是为什么呢?(已修改,但仍有错误)

[复制链接]
发表于 2009-6-5 18:40:45 | 显示全部楼层 |阅读模式
本帖最后由 acergelff 于 2009-6-8 17:30 编辑

今天刚刚接触到CI
纯纯粹粹的菜鸟啊
自己照着教程做了个写入数据库的函数,然后在系统自带的welcome.php控制器中调用

然后就错了,提示
A PHP Error was encounteredSeverity: Notice
Message:  Undefined property: Welcome:Payment
Filename: controllers/welcome.php
Line Number: 24


Fatal error:  Call to a member function add_pay_log() on a non-object in D:\AppServ\www\payment\system\application\controllers\welcome.php on line 24


迷惑了,这究竟是为什么呢?以前做的都是流程式的开发,对MVC架构很是不理解.....


这应该如何解决呢?错在哪儿了?
 楼主| 发表于 2009-6-5 18:42:43 | 显示全部楼层

application\models\payment.php

本帖最后由 acergelff 于 2009-6-8 17:30 编辑

class Payment extends Model{

    function Payment(){
        parent::Model();
    }

    function add_pay_log(){
        $now = date("Y-m-d H:i:s");
        $topuplog= array(
            'user_name'      => $this->input->xss_clean($this->input->post('user_name')),
            'topup_time'     =>$now,
            'price'               =>$this->input->xss_clean($this->input->post('price')),
            'status'            =>'1'
        );

        $this->db->insert('pay_topup_log', $topuplog);
    }
}


welcome.php

class Welcome extends Controller {

    function Welcome()
    {
        parent::Controller();   
    }
   
    function index()
    {
          $this->load->helper('form');
          $data['title'] = "用户中心";
          $data['headline'] = "欢迎您的光临!";
          $data['include'] = 'home';
          $this->load->vars($data);
          $this->load->view('template');
    }

    function Payment(){
        $this->output->enable_profiler(TRUE);
        $this->load->helper('url');
        $this->load->model('payment',' ',TRUE);
        $this->ayment->add_pay_log();
        redirect('welcome/thankyou','refresh');
    }

}

提交的表单如下
echo form_open('welcome/Payment');
echo form_label('用户名','name');
$ndata = array('name' => 'user_name', 'id' => 'id', 'size' => '25');
echo form_input($ndata);

echo form_label('金额','email');
$edata = array('name' => 'price', 'id' => 'email', 'size' => '25');
echo form_input($edata);

echo form_submit('submit','充值');
echo form_close();
发表于 2009-6-5 23:17:14 | 显示全部楼层
从错误上来说是模型没有装载进来。
这个错了吧?
    function MContacts(){
        parent::Model();
    }

应该是
    function Payment(){
        parent::Model();
    }
 楼主| 发表于 2009-6-7 12:19:25 | 显示全部楼层
改了,但还是错误,估计不是这个原因,
有人说是没有连接数据库
我在构造函数中添加了
$this->load->database();
还是没有用
发表于 2009-6-11 13:21:48 | 显示全部楼层
我觉得是$this->load->model('payment',' ',TRUE);这个地方有问题,你不设置别名看看.
就用$this->load->model('payment'),然后在构造中加载数据库连接.

本版积分规则