CodeIgniter数据库缓存配置

8

我无法将数据库缓存配置到我的系统中。我尝试了互联网中提供的所有配置。请帮帮我。

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

以下是我收到的错误消息:
遇到了未捕获的异常
类型:异常
消息:配置的数据库连接启用了缓存。中止。
文件名:C:\wamp\www\test\system\libraries\Session\drivers\Session_database_driver.php

它不起作用,我按照您说的试过了。我需要在Session_database_driver.php文件中进行任何更改吗? - Shahmee
2个回答

8

缓存可以通过以下三个步骤启用:

1)在您的服务器上创建一个可写目录,用于存储缓存文件。

2)在应用程序/config/database.php文件中设置缓存文件夹的路径。 例如:

$db['default']['hostname'] = 'XXXXX';
$db['default']['username'] = 'XXXXX';
$db['default']['password'] = 'XXXXX';
$db['default']['database'] = 'XXXXX';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = 'XXX';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = TRUE;
$db['default']['cachedir'] = 'application/cache';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

3) 启用缓存功能,可以在应用程序/config/database.php文件中全局设置偏好,也可以按照下面的描述手动启用/禁用缓存。

 // Turn caching on
 $this->db->cache_on();

 // Turn caching off for this one query
 $this->db->cache_off();

此外,请确保您的目录是可写的(如果您使用的是Mac或Linux系统)

sudo chmod 777 -R application/cache

我希望这对你有用。


1
我不认为777是最好的选择,也许755更安全。 - Marcelo Agimóvel
太棒了,缓存起作用了,并开始将缓存存储在缓存目录中。谢谢。 - Jodyshop

0

我需要按照以下方式修改db_cache类

vi +146 /var/www/html/sys/database/DB_cache.php

//ekariz

if(!is_readable($filepath)){
    return FALSE;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接