/** * 检查连接状态,如果连接断开,则重新连接 */ function check_status() { if (!$this->_db->ping()) { $this->_db->close(); $this->_db->connect(); } }
public function closeConnection(IDatabase $conn) { $serverIndex = $conn->getLBInfo('serverIndex'); // second index level of mConns foreach ($this->mConns as $type => $connsByServer) { if (!isset($connsByServer[$serverIndex])) { continue; } foreach ($connsByServer[$serverIndex] as $i => $trackedConn) { if ($conn === $trackedConn) { $host = $this->getServerName($i); $this->connLogger->debug("Closing connection to database {$i} at '{$host}'."); unset($this->mConns[$type][$serverIndex][$i]); --$this->connsOpened; break 2; } } } $conn->close(); }