Конечно на всеобщее)
Код:
namespace kd;
db::load('main')->config(array('db'=>'main_db','host'=>'localhost','user'=>'root')); // пример задания конфига подключения к базе
db::load('external')->config(array('db'=>'exthost','host'=>'mysql.ext.com','user'=>'user')); // пример задания конфига подключения ко базе второй базе
$select = db::select()->from('table'); // По умолчанию используется подключение к базе с конфигом main
// .. Some code
$select->where('tag like '%?%' OR name = ?', array('?'=>$name));
// .. Some code
$select->order('id')->fields(array('name'=>'mod_name'))->fields('id','tag');
while($r = $select->fetch()){
echo $r['mod_name'].$r['id'].$r['tag'];
}
// А так используем подключение ко второй базе external
echo db::load('external')->insert()->into('table')->fields($data)->insert_id();
Файлы подгружаются через autoload стандартным разбиением на _. То есть db_sql_method -> ./db/sql/method.php автолоад я отправлять не буду, там буквально.
Подключения к базе не происходит до тех пор пока она не потребуется, то есть если ты не использовал запросов, подключения не произойдет совсем.
А так же используется еще один клас, буквально в паре мест debug. Его можно использовать так:
Код:
namespace kd;
function error_handler($errno, $errstr, $errfile, $errline){
debug::add($errstr, $errno, $errfile, $errline);
return true;
}
set_error_handler('kd\error_handler');// тут мы биндим ошибки на него, что бы он собирал их
debug::show(); // А так выводим в удобном виде инфу о всех проишествиях по ходу работы скрипта.
Оба расширения работают в неймспейсе kd; в php 5.3 и выше. Но сделать даунгрейд до старых версий не составит труда.
Работа с базой подразумевала еще много интересных фишек, но все не могу собраться и дописать их, вдруг у тебя получится
Да кстати можно писать запросы даже так:
Код:
$update = db::update();
// .. Some code
$update->where('time < '.time());
// .. Some code
$update->fields($data);
// ..
echo $update->table('log')->affected_rows();
А логика функции fileds() - в некоторых местах может быть совсем безумной, стоит посмотреть код, позволяет быстро собирать запросы и оперировать данными. Мне это дополнение классов существенно облегчает работу.