gpt4 book ai didi

php - CodeIgniter 无法手动或自动加载数据库库;在非对象上调用成员函数 get()

转载 作者:行者123 更新时间:2023-11-30 23:18:48 24 4
gpt4 key购买 nike

我无法在我的模型或 autoload.php 中手动正确加载数据库

$query = $this->db->get('videos'); 产生一个在非对象错误上调用成员函数 get()表示数据库库没有加载。

我尝试使用下面模型的构造函数中注释掉的两行加载数据库库,但都返回错误。如果我取消注释 $this->load->database 我得到一个 Call to member function database() on a non object 错误,

如果我取消注释 $this->load->library('database') 我会得到一个在非对象错误上调用成员函数 library()

<?php 
class Videos_model extends CI_Model {
public function __construct()
{
parent::__construct();
//$this->load->database();
//$this->load->library('database');
}

public function get_videos()
{
$query = $this->db->get('videos');
}

}

controller中的同一行$this->load->database();并没有产生错误而是get()函数错误。

class Videos extends CI_Controller {

public function __construct() {
parent::__construct();
$this->load->helper(array('url'));
$this->load->database();
//$this->load->library('database');
$this->load->model('videos_model');
$this->videos_model->get_videos();
}
}

我还在配置文件中设置了自动加载,

$autoload['libraries'] = array('database');

在我的 CI Log 文件中数据库驱动被指示为被初始化 DEBUG - 2013-05-09 15:31:17 --> 数据库驱动程序类已初始化

这也是我的数据库配置,

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'dbusername';
$db['default']['password'] = 'dbpassword';
$db['default']['database'] = 'dbname';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

我在 eclipse 中使用 CI 2.1.3 和 aptana studio 3 插件以及 phpMyAdmin 3.5.8.1 和 Apache Server 2.2

更新:我已经确认可以从 Controller 而不是模型访问数据库。

最佳答案

找到了答案。

我曾使用本教程在 Eclipse 中使用自动完成功能,http://www.taggedzi.com/articles/display/autocomplete-eclipse-codeigniter-2 ,(链接 404')一旦我删除了 controller.php 和 model.php 中的额外代码,模型中的数据库访问就恢复了。

这里有一个更好的教程,介绍如何在 Eclipse 中使用自动完成功能,http://www.web-and-development.com/codeigniter-and-eclipse-autocomplete/ (阅读评论以了解如何让它在模型和 Controller 中工作)。

关于php - CodeIgniter 无法手动或自动加载数据库库;在非对象上调用成员函数 get(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16454618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com