2014-05-08 4 views
0

데이터베이스 구성 시스템을 설정하려고했습니다. 나는 새 데이터베이스 설정, 부하 그룹을 연결하고 필드 값 해보 :Kohana 3.3 데이터베이스 구성 시스템

Kohana::$config->attach(new Config_Database); 
$config = Kohana::$config->load('site'); 
$value = $config->get('title'); 
echo Debug::vars($value); 

을하지만 난 단지 오류가 발생합니다 :

ErrorException [ Notice ]: unserialize(): Error at offset 0 of 16 bytes MODPATH\database\classes\Kohana\Config\Database\Reader.php [ 64 ]

구성 테이블 구조 :

CREATE TABLE IF NOT EXISTS `config` (
    `group_name` varchar(128) NOT NULL DEFAULT '', 
    `config_key` varchar(128) NOT NULL DEFAULT '', 
    `config_value` text, 
    PRIMARY KEY (`group_name`,`config_key`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

INSERT INTO `config` (`group_name`, `config_key`, `config_value`) VALUES 
('site', 'description', 'Description'), 
('site', 'title', 'Test title'); 

이 제발 말해 뭐가 잘못 됐어?

답변

1

Config_Database은 구성 값이 serialized이기를 기대하기 때문입니다. 오류 메시지는 독자가 요청한 데이터를 unserialize에 연결할 수 없다는 것을 나타냅니다 (데이터베이스에 일련 화되지 않은 값을 입력했기 때문에). 당신은 사용하여 설정 값을 설정해야합니다 : 이제

Kohana::$config->attach(new Config_Database); 
$config = Kohana::$config->load('site');  
$config->set('title', 'This is a title'); 

우리는 데이터베이스의 데이터를 보면 당신은의 형식의 메모를 가지고 (다음과 같은 것을 볼 수있을 것이다 : 예를 들어

$config->set('key', 'value') 

config_value 필드) :

mysql> select * from config; 
+------------+------------+-------------------------+ 
| group_name | config_key | config_value   | 
+------------+------------+-------------------------+ 
| site  | title  | s:15:"This is a title"; | 
+------------+------------+-------------------------+ 
1 row in set (0.00 sec) 
+0

이해. 자세한 답변 주셔서 감사합니다! –