示例#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');
     }
 }