【问题标题】:can't connect to DB codeIgniter无法连接到数据库 codeIgniter
【发布时间】:2015-09-30 18:21:26
【问题描述】:

我正在尝试自己学习 CodeIgniter。但是当我按照本教程中的具体说明进行操作时 http://www.codeigniter.com/user_guide/tutorial/news_section.html

这是我的数据库配置

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'test',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => TRUE,
    'db_debug' => TRUE,
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

我收到以下错误:

A PHP Error was encountered

Severity: Notice

Message: Undefined property: CI_Loader::$db

Filename: pages/about.php

Line Number: 9

Backtrace:

File: /Applications/MAMP/htdocs/CodeIgniter/application/views/pages/about.php
Line: 9
Function: _error_handler

File: /Applications/MAMP/htdocs/CodeIgniter/application/controllers/Pages.php
Line: 18
Function: view

File: /Applications/MAMP/htdocs/CodeIgniter/index.php
Line: 292
Function: require_once


Fatal error: Call to a member function query() on null in /Applications/MAMP/htdocs/CodeIgniter/application/views/pages/about.php on line 9
A PHP Error was encountered

Severity: Error

Message: Call to a member function query() on null

Filename: pages/about.php

Line Number: 9

Backtrace:

【问题讨论】:

  • 您是否已经使用您在 codeigniter 中配置的凭据创建了数据库?
  • 这些参数你设置了吗? $active_group = 'default'; $query_builder = TRUE;
  • @Alariva 是的,数据库已创建
  • @PratikSoni 是的,这些在配置数据库文件中
  • 我不确定,但您应该尝试将配置文件的权限设置为可执行/可读。

标签: php codeigniter phpmyadmin


【解决方案1】:

我认为这是因为您没有自动加载数据库库。

路径:application/config/autoload.php

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

为什么会显示Message: Undefined property: CI_Loader::$db

【讨论】:

  • @Keeper01 我认为自动加载帮助程序 url、表单、html 和库数据库、会话等最常见。
【解决方案2】:

您可以尝试在控制器或视图中加载您的模型,建议在控制器中加载...

$this->load->model('News_model','News',true);

然后尝试插入、更新或删除使用:

$this->News->insert_function($param1,$param2);

class News_model extends CI_Model {

    public function insert_function($param1,$param2)
    {
            $this->db->query("insert into table ('col1','col2') values ('$param1','$param2')");
            //other codes here....
    }
}

希望对您有所帮助..

【讨论】:

    猜你喜欢
    • 2019-06-09
    • 2018-05-16
    • 2020-03-07
    • 1970-01-01
    • 2016-07-01
    • 1970-01-01
    • 2019-11-13
    • 2020-02-11
    相关资源
    最近更新 更多