<?php
/**
* Classe que realiza a conexão da aplicação com o banco de dados
* é aqui que se edita os parâmetros de conexão e o tipo de banco utilizado
*
* @author Aderbal Nunes - 31 de julho de 2009 10:56:04
* @version 0.2.1
* @example Database::getInstance();
*/
class Database{
private static $server = "localhost";
private static $username= "root";
private static $pw = "password";
private static $port = "1433"; // default
private static $dbname = "database_name";
private static $link = null;
private static $instance = null;
private static $persistent = false;
/**
* Constructor. Como padrão a persistência seta como false. Fazendo assim,
* a conexçao não ficara aberta enquanto a aplicação estiver rodando,
* e sim apenas quando for necessário
*
* @param [boolean $persistent]
* @return Database Link
*/
private function __construct($persistent = false){
self::$persistent = $persistent;
}
/**
* Chamado pelo PHP quando termina de utilizar a classe
* se a conexão for persistente, não chama o mssql_close()
*
*/
public function __destruct(){
if(self::$instance != null){
if(!self::$persistent)
mssql_close(self::$link);
self::$instance = null;
}
}
/**
* Recupera a instância forçando singleton
*
* @return Database
*/
public static function getInstance($persistent = false) {
if(!isset(self::$instance)) {
self::$instance = new Database($persistent);
}
return self::$instance->getConnection();
}
/**
* Change DB Name
*
* @param string $name
*/
public static function changeDatabase($name){
if(self::$link)
mssql_select_db($name);
}
/**
* Cria o objeto de conexão
*
* @return Link SQL Server
*/
public function getConnection(){
if(self::$persistent)
self::$link = mssql_pconnect(self::$server, self::$username, self::$pw);
else
self::$link = mssql_connect(self::$server, self::$username, self::$pw);
if(!self::$link) throw new Exception("Erro ao conectar o banco");
mssql_select_db(self::$dbname);
return self::$link;
}
}
?>