好的,我遇到了这个问题,谷歌没有帮助,我认为这是因为我的问题太简单了。
我正在尝试load
任何东西或与load->database();
联系,但它不起作用。
这是我带有注释的代码,它将解释一切。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class CI_Lang {
function __construct() {
# Show all files included
print_r(get_included_files()); // There is nothing like loader or load .php
# Check for loader file
if( ! class_exists('loader') || ! class_exists('load')) {
echo 'no load '; // is being shown,
}
# Check Database connection before
if (isset($this->db->conn_id) && is_resource($this->db->conn_id)) {
echo 'database is loaded and conected ';
} else {
echo 'no connection '; // is being shown,
}
# Get Database connection
$this->load->library('database');
/*
Script dies on line above with error:
Fatal error: Call to a member function library() on a non-object in
application/core/Lang.php on line 38
*/
$this->load->database();
# Check Database connection after
if (isset($this->db->conn_id) && is_resource($this->db->conn_id)) {
echo 'database is loaded and conected ';
} else {
echo 'no connection ';
}
# Register as loaded
log_message('debug', 'JK_Lang Class initialized');
}
}
此脚本名为 Lang.php
它位于application/core
文件夹中。它应该覆盖主 Lang 类,确实如此。问题是,它似乎都是孤独的。如何在此处包含其他方法?
我已经修改了autoload.php
并在那里设置:
$autoload['libraries'] = array(
# We need Loader
'loader',
# Connect with DB
'database',
# Session Start
'session'
);
现在我已经没有想法了,请帮忙吗?
问题是,我没有声明代码点火器实例。所以有两种方法可以修复它。
首先,我可以做一个这样的函数:
function __construct() {
$this->run();
}
function run() {
/* All my __construct code here */
}
或者当我实际解决我的问题时,我创建了一个库,为了获得使用 codeigniter 所需的所有东西,我创建了一个实例:
class L {
var $CI;
function __construct() {
$this->CI =& get_instance();
$this->CI->load->database();
$this->test();
}
function test() {
$query = $this->CI->db->query("SELECT * FROM `stackoverflow.com`");
}
}