| 
                        副标题[/!--empirenews.page--]
                         核心代码 
/*
- To change this template,choose Tools | Templates
 
- and open the template in the editor.
 
*/ 
 
class mongo_db { 
private $config; 
private $connection; 
private $db; 
private $connection_string; 
private $host; 
private $port; 
private $user; 
private $pass; 
private $dbname; 
private $persist; 
private $persist_key; 
private $selects = array(); 
private $wheres = array(); 
private $sorts = array(); 
private $limit = 999999; 
private $offset = 0; 
private $timeout = 200; 
private $key = 0; 
/*     --------------------------------------------------------------------------------    CONSTRUCTOR  --------------------------------------------------------------------------------      Automatically check if the Mongo PECL extension has been installed/enabled.  Generate the connection string and establish a connection to the MongoDB.  / 
public function __construct() { 
if((IS_NOSQL != 1)){ 
return; 
} 
if (!class_exists('Mongo')) { 
//$this->error("The MongoDB PECL extension has not been installed or enabled",500); 
} 
$configs =wxcity_base::load_config("cache","mongo_db"); 
$num = count($configs['connect']); 
$this->timeout = trim($configs['timeout']); 
$keys = wxcity_base::load_config('double'); 
$this->key = $keys['mongo_db']; 
$this->config = $configs['connect'][$this->key]; 
$status = $this->connect(); 
if($status == false) 
{ 
for($i = 1; $i < $num; $i++) 
{ 
$n = $this->key + $i; 
$key = $n >= $num ? $n - $num : $n; 
$this->config = $configs['connect'][$key]; 
$status = $this->connect(); 
if($status!=false) 
{ 
$keys['mongo_db'] = $key ; 
$this->key = $key; 
$data = "<?phpnreturn ".var_export($keys,true).";n?>"; 
file_put_contents(WHTY_PATH.'configs/double.php',$data,LOCK_EX); 
break; 
} 
} 
} 
if($status==false) 
{ 
die('mongoDB not connect'); 
} 
} 
function __destruct() { 
if((IS_NOSQL != 1)){ 
return; 
} 
if($this->connection) 
{ 
$this->connection->close(); 
} 
} 
/*     --------------------------------------------------------------------------------    CONNECT TO MONGODB   --------------------------------------------------------------------------------      Establish a connection to MongoDB using the connection string generated in   the connection_string() method. If 'mongo_persist_key' was set to true in the   config file,establish a persistent connection. We allow for only the 'persist'    option to be set because we want to establish a connection immediately. / 
private function connect() { 
$this->connection_string(); 
$options = array('connect'=>true,'timeout'=>$this->timeout); 
try { 
$this->connection = new Mongo($this->connection_string,$options); 
$this->db = $this->connection->{$this->dbname}; 
return($this); 
} catch (MongoConnectionException $e) { 
return false; 
} 
} 
/*     --------------------------------------------------------------------------------    BUILD CONNECTION STRING  --------------------------------------------------------------------------------      Build the connection string from the config file.  */ 
private function connection_string() { 
$this->host = trim($this->config['hostname']); 
$this->port = trim($this->config['port']); 
$this->user = trim($this->config['username']); 
$this->pass = trim($this->config['password']); 
$this->dbname = trim($this->config['database']); 
$this->persist = trim($this->config['autoconnect']); 
$this->persist_key = trim($this->config['mongo_persist_key']); 
$connection_string = "mongodb://";
if (emptyempty($this->host)) {
  $this->error("The Host must be set to connect to MongoDB",500);
} if (emptyempty($this->dbname)) {
  $this->error("The Database must be set to connect to MongoDB",500);
} if (!emptyempty($this->user) && !emptyempty($this->pass)) {
  $connection_string .= "{$this->user}:{$this->pass}@";
} if (isset($this->port) && !emptyempty($this->port)) {
  $connection_string .= "{$this->host}:{$this->port}";
} else {
  $connection_string .= "{$this->host}";
} $this->connection_string = trim($connection_string); 
} 
/*     --------------------------------------------------------------------------------    Switch_db   --------------------------------------------------------------------------------      Switch from default database to a different db  */ 
public function switch_db($database = '') { 
if (emptyempty($database)) { 
$this->error("To switch MongoDB databases,a new database name must be specified",500); 
} $this->dbname = $database; 
try { 
$this->db = $this->connection->{$this->dbname}; 
return(TRUE); 
} catch (Exception $e) { 
$this->error("Unable to switch Mongo Databases: {$e->getMessage()}",500); 
} 
} 
                                                (编辑:滁州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |