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

调用未定义方法、数据库错误:求排查CI控制器第13行代码问题

问题排查:调用未定义方法及数据库错误分析

看起来你遇到了两个关联的问题,咱们一步步拆解:

先把你的代码贴出来方便分析:

控制器代码

function __construct() { 
    parent::__construct(); 
    $this->load->helper('url'); 
    $this->load->model('model_databis'); //line13 
}
function index(){ 
    $data=array('data' => $this->model_databis->bus()); 
    $this->load->view('admin/databis',$data); 
}

模型代码

class Model_databis extends CI_Model{ 
    function __construct(){ 
        parent::__construct(); 
    } 
    function dbis(){ 
        $query = $this->db->get('bus'); 
        return $query->result_array(); 
    } 
    function tambah($data){ 
        $this->db->insert('bus', $data); 
        return TRUE; 
    } 
}

问题原因分析

  1. 核心错误:方法名不匹配
    你在控制器的index方法里调用了$this->model_databis->bus(),但你的Model_databis模型里根本没有定义bus()方法,只有一个名为dbis()的方法——这就是「调用未定义方法」错误的直接原因。系统提示第13行可能是因为错误追踪到模型加载的位置,但实际问题出在后续的方法调用环节。

  2. 数据库错误的关联影响
    因为方法调用失败,后续本应执行的数据库查询$this->db->get('bus')根本没机会运行;同时如果你的CI数据库配置(application/config/database.php)存在参数错误(比如主机地址、用户名、密码或数据库名配置不对),也会触发数据库相关报错,但当前首要解决的是方法名不匹配的问题。

解决方案

你有两种选择来修复这个问题:

  • 修改控制器的调用代码:把$data=array('data' => $this->model_databis->bus());改成$data=array('data' => $this->model_databis->dbis());
  • 修改模型的方法名:把模型里的function dbis()改成function bus(),保持调用和定义的方法名一致

另外,建议你检查application/config/database.php中的数据库配置项,确保连接参数正确,避免后续出现数据库连接失败的问题。

内容的提问来源于stack exchange,提问作者Me Myself

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:58:20