Location: PHPKode > scripts > Controller > controller/Database.class.php
<?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;
	}
}
?>
Return current item: Controller