【问题标题】:codeigniter database error notice [closed]codeigniter 数据库错误通知 [关闭]
【发布时间】:2013-03-12 20:27:26
【问题描述】:

我在模型中有以下代码:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Membership_model extends CI_Model 
{

    function __construct()
    {
        parent::__construct();
    }

    public function register_user($info)
    {
        if(isset($info))
        {
            $data = array(
               'fullname' => $info['fullname'] ,
               'mobile' =>  $info['mobile'] ,
               'telephone' =>  $info['home'] ,
               'username' =>  $info['username'] ,
               'password' =>  $info['password'] ,
               'email' =>  $info['email'] ,
               'member_type' =>  $info['memberType'] 
            );

            $this->db->insert('users', $data);
        }
    }

}

并在控制器中这样称呼它:

$info = array('fullname' => $fullname , 'mobile' => $mobile, 'home' => $home,
              'username' => $username, 'password' => $password,        
              'memberType' => $memberType, 'email' => $email );

$this->membershipModel->register_user($info);

不过,我收到了这个错误:

遇到了 PHP 错误

严重性:通知

消息:未定义的属性:Membership::$db

文件名:core/Model.php

行号:51

知道这意味着什么吗?问候,

【问题讨论】:

    标签: codeigniter codeigniter-2


    【解决方案1】:

    在 CodeIgniter 中,类名和方法名区分大小写:

    $this->membershipModel->register_user($info);  
    

    应该读...

    $this->Membership_model->register_user($info);
    

    注意
    确保将模型文件命名为:membership_model.php,如 CodeIgniter 文档中所述。

    【讨论】:

    • 实际上整个问题它没有识别出db这个词。我加载了数据库库并完成了。
    • 当然,您确实需要加载正确的类。你有另一个型号叫membershipModel 吗?
    • 您从哪里读到 PHP 中的类/方法名称区分大小写?请参阅this 了解它们为什么不区分大小写
    • @MarcAudet 即 CI 在处理类的加载和调用时区分大小写,因为类的文件名区分大小写。更新你的帖子,这样你就不会错误地说 PHP 是这样的。
    • @crytic 我根据您的 cmets 进行了更改,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-02-28
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    相关资源
    最近更新 更多