示例#1
1
文件: DB.php 项目: txthinking/buggy
 protected static function select($a)
 {
     self::init();
     if ($a === 'write') {
         if (self::$_writeConnected && self::$_last === 'write') {
             return;
         }
         foreach (self::$_mcs as $i => $c) {
             R::selectDatabase("write:{$i}");
             if (R::testConnection()) {
                 R::freeze(true);
                 self::$_writeConnected = true;
                 self::$_last = 'write';
                 return;
             }
         }
         throw new \Exception('Master DB have down');
     }
     if ($a === 'read') {
         if (self::$_readConnected && self::$_last === 'read') {
             return;
         }
         foreach (self::$_scs as $i => $c) {
             R::selectDatabase("read:{$i}");
             if (R::testConnection()) {
                 R::freeze(true);
                 self::$_readConnected = true;
                 self::$_last = 'read';
                 return;
             }
         }
         throw new \Exception('Slave and master DB have down');
     }
 }
示例#2
0
function connect()
{
    $config = \configuration\load();
    if (empty($config['dsn']) || empty($config['user']) || empty($config['password'])) {
        die("Please check the configuration\\database.php file");
    }
    R::addDatabase('db', $config['dsn'], $config['user'], $config['password'], $config['frozen']);
    R::selectDatabase('db');
}
示例#3
0
 /**
  * @param $name
  * @return mixed
  */
 public function setDb($name)
 {
     $this->options = $this->db[$name];
     R::setAutoResolve(TRUE);
     R::selectDatabase($name);
     R::ext('xdispense', function ($type) {
         return R::getRedBean()->dispense($type);
     });
     if ($this->cache) {
         R::useWriterCache(true);
         R::freeze(TRUE);
     }
     return $name;
 }