使用CI框架加载数据类
$this->load->database();
时报错:
A PHP Error was encounteredSeverity: Warning
Message: mysqli_init(): Property access is not allowed yet
Filename: mysqli/mysqli_driver.php
Line Number: 18
代码如下:
class News extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('news_model');
$this->load->helper('url_helper');
}
public function index() {
$data['news'] = $this->news_model->get_news();
$data['title'] = 'News archive';
$this->load->view('templates/header', $data);
$this->load->view('news/index', $data);
$this->load->view('templates/footer');
}
public function view($slug = NULL) {
$data['news_item'] = $this->news_model->get_news($slug);
if (empty($data['news_item']))
{
show_404();
}
$data['title'] = $data['news_item']['title'];
$this->load->view('templates/header', $data);
$this->load->view('news/view', $data);
$this->load->view('templates/footer');
}
}
数据库配置:
$active_group = 'default';
$db [ 'default' ] = array (
'dsn' => '' ,
'hostname' => 'localhost' ,
'username' => 'root' ,
'password' => '' ,
'database' => 'my' ,
'dbdriver' => 'mysqli' ,
'dbprefix' => '' ,
'pconnect' => FALSE ,
'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
);
命令行连接数据库是没有问题的。
在google之后找到类似问题的解决方案:
是因为安装了Xdebug导致的,只要把ext目录下的php_xdebug-2.X.X-5.6-vc11.dll删除掉就好了。经过测试2.3.0,2.3.1,2.3.2都存在这个问题,换到2.2.7即php_xdebug-2.2.7-5.6-vc11.dll,问题才得到解决。