Kohana ve Veritabanına Bağlanma
Kohana ile veritabanı bağlantısı gerçekleştirmek istiyorsanız öncelikle application/bootstrap.php dosyasını düzenlemeniz gerekmektedir. bootstrap.php dosyası içerisinde kullanacağınız modülleri çağırmanız gerekmekte. Bundan dolayı, Kohana::modules arrayi içinde bulunan database satırının yorum satırı olarak göstermemelisiniz.
Kohana::modules(array( // ... 'database' => MODPATH.'database', // Database access // ... ));
Bu aşamadan sonra veritabanına bağlanmak için ayarların yapılması gerekmekte. Veritabanı ayarlarını Modules/database/config/database.php dosyası içerisinde yapabileceğiniz gibi, Application/config/database.php dosyası oluşturup aşağıdaki kod ile de gerçekleştirebilirsiniz.
<?php defined('SYSPATH') or die('No direct access allowed.');
return array
(
'default' => array
(
'type' => 'mysql',
'connection' => array(
'hostname' => 'localhost',
'username' => 'kullanıcıadı',
'password' => 'şifre',
'persistent' => TRUE,
'database' => 'veritabanıadı',
),
'table_prefix' => '',
'charset' => 'utf8',
'profiling' => TRUE,
),
'ikinciveritabani' => array
(
'type' => 'mysql',
'connection' => array(
'hostname' => 'localhost',
'username' => 'kullanıcıadı',
'password' => 'şifre',
'persistent' => TRUE,
'database' => 'veritabanıadı2',
),
'table_prefix' => '',
'charset' => 'utf8',
'profiling' => TRUE,
)
);
default adında tanımlamış olduğunuz veritabanına objesini oluşturmak için;
$default = Database::instance();
yazmanız yeterlidir. Instance Name farklı kullandıysanız aşağıdaki şekilde veritabanı objesini oluşturabilirsiniz;
$default = Database::instace('ikinciveritabani');
Veritabanı ile işiniz bittiğinde connection kapatmak için;
unset($default) // veya unset(Database::$instances['default']);
demeniz yeterlidir.Bütün connectionları kapatmak istiyorsanız;
Database::$instances= array();
kullanmalısınız.
Connection test etmek için controller classının içinde şunu denemeniz yeterlidir;
$default = Database::instance(); $default->connect(); unset($default);
Eğer "Database_Exception [ 2 ]: mysql_pconnect(): Access denied for user 'root'@'localhost' (using password: YES)" hatası almazsanız veritabanına başarıyla bağlandınız demektir.
Kaynak:
http://kohanaframework.org/3.2/guide/database/config