youngrp 0 Denunciar post Postado Agosto 21, 2009 Olá, Esta é minha primeira Classe e gostaria de compartilhar com vocês. Com ela é possível conectar, executar query e retornar resultados de Bancos de Dados Microsoft SQL Server e MySQL. Como sou iniciante em Class, se tiverem alguma dica de como melhora-la será bem vinda também. Exemplo de uso: <?php require("class.inc.php"); $mssql_servidor = "200.200.200.200"; $mssql_usuario = "sa"; $mssql_senha = "senha"; $mssql_banco = "banco"; $mysql_servidor = "127.0.0.1"; $mysql_usuario = "root"; $mysql_senha = "senha"; $mysql_banco = "banco"; $db = new dbClass('mssql'); $db2 = new dbClass('mysql'); $db->query("SELECT TOP 10 * FROM tabela"); while ($resultado = $db->result('array')) { echo $resultado[0] . "<br>"; } $db2->query("SELECT * FROM tabela LIMIT 10"); while ($resultado2 = $db2->result('object')) { echo $resultado2->coluna . "<br>"; } $db->close(); $db2->close(); ?> class.inc.php: <?php class dbClass { private $db_type, $db_host, $db_user, $db_pass, $db_dbase, $db_link, $db_query; private function fatalerror($err_type) { if ($err_type == 1) die('Erro ao conectar no Servidor SQL !'); elseif ($err_type == 2) die('Erro ao selecionar o Banco de Dados !'); elseif ($err_type == 3) die('Tipo de Banco de Dados não suportado !'); else die('Erro desconhecido !'); } public function __construct($db_type) { $this->db_type = $db_type; $this->connect(); } public function connect() { if ($this->db_type == 'mssql') { $this->db_host = $GLOBALS['mssql_servidor']; $this->db_user = $GLOBALS['mssql_usuario']; $this->db_pass = $GLOBALS['mssql_senha']; $this->db_dbn = $GLOBALS['mssql_banco']; if (!$this->db_link = @mssql_connect($this->db_host, $this->db_user, $this->db_pass)) $this->fatalerror(1); if (!@mssql_select_db($this->db_dbn, $this->db_link)) $this->fatalerror(2); } elseif ($this->db_type == 'mysql') { $this->db_host = $GLOBALS['mysql_servidor']; $this->db_user = $GLOBALS['mysql_usuario']; $this->db_pass = $GLOBALS['mysql_senha']; $this->db_dbn = $GLOBALS['mysql_banco']; if (!$this->db_link = @mssql_connect($this->db_host, $this->db_user, $this->db_pass)) $this->fatalerror(1); if (!@mssql_select_db($this->db_dbn, $this->db_link)) $this->fatalerror(2); } else $this->fatalerror(3); } public function query($query) { if ($this->db_type == 'mssql') $this->db_query = mssql_query($query, $this->db_link); elseif ($this->db_type == 'mysql') $this->db_query = mysql_query($query, $this->db_link); else $this->fatalerror(3); } public function result($res_type = NULL) { if ($this->db_type == 'mssql') { if ($res_type == 'object') return mssql_fetch_object($this->db_query); elseif ($res_type == 'array') return mssql_fetch_array($this->db_query); elseif ($res_type == 'row') return mssql_fetch_row($this->db_query); else mssql_rows_affected($this->db_query); mssql_free_result($this->db_query); } elseif ($this->db_type == 'mysql') { if ($res_type == 'object') return mysql_fetch_object($this->db_query); elseif ($res_type == 'array') return mysql_fetch_array($this->db_query); elseif ($res_type == 'row') return mysql_fetch_row($this->db_query); else mysql_affected_rows($this->db_query); mysql_free_result($this->db_query); } else $this->fatalerror(3); } public function close() { if ($this->db_type == 'mssql') mssql_close($this->db_link); elseif ($this->db_type == 'mysql') mysql_close($this->db_link); else $this->fatalerror(3); } } ?> No exemplo acima, utilizamos as conexões MSSQL e MySQL simultâneamente sem complicações. Fiz duas queryes retornando 10 linhas da tabela, no MSSQL utilizei o fetch_array e no MySQL utilize o fetch_object. Espero que gostem. Até mais. Compartilhar este post Link para o post Compartilhar em outros sites