+6

Criando um layer para Bancos de Dados

criado por Cléver Anjos em 07/05/2002 8:55pm
Bom aqui está o arquivo bdfunctions.php com seus comentários. No caso eu coloquei apenas as funções para MySQL, mas por analogia voces podem colocar qualquer outro banco de dados (ou até sem banco, em aquivo texto mesmo...).

<?php
$dbhost = "localhost";
$dbuname = "root";
$dbpass = "mypasshehehe";
$dbname = "MyBD";
$dbtype = "MySQL";
$debug = 0 ; // Flag importante!!! se setado para 1 em 
             // qualquer programa, as funções vão imprimir 
             // mensagens de depuração

function ErroFatal($erro){
  echo "<font color=#FF0000 size=20>Erro Fatal:<br></font>";
  echo "<font color=#FF0000 size=16>$erro</font>";
  die;
}

function AbreBD(){
global $dbhost, $dbuname, $dbpass, $dbname,$dbtype,$debug;
    if ($debug)
        echo "AbreBD:$dbhost:$dbuname:$dbpass:$dbname:$dbtype<br>";
    switch ($dbtype) {
        case "MySQL":
           @mysql_connect($dbhost,$dbuname,$dbpass)
               or ErroFatal("Banco de dados inacessível!");
           @mysql_select_db("$dbname");
        break;
    }
}

function BDQuery($query) {// Faz o query
global $dbtype,$debug;
    if ( $debug ) echo "BDQuery:$query<br>";
       switch ($dbtype) {
      case "MySQL":
        $result=mysql_query($query) or die(mysql_error());
    break;
    }
    return $result;
}

function BDRows($result) {//Retorna a numero de linhas de uma selecao
global $dbtype,$debug;
      switch ($dbtype) {
           case "MySQL":
              $rows=mysql_num_rows($result);
           break;
      }
      if ( $debug )
        echo "BDRows:$rows<br>";
      return $rows;
}

function BDRowArray($result) {
global $dbtype;
      switch ($dbtype) {
          case "MySQL":
               return mysql_fetch_row($result);
          break;
    }
}

function BDLastInsertID() {
global $dbtype;
      switch ($dbtype) {
          case "MySQL":
               return mysql_insert_id();
          break;
    }
}

function BDError() {
global $dbtype;
      switch ($dbtype) {
          case "MySQL":
            return (mysql_error());
          break;
    }
}
?>

Comentários:

Mostrando 1 - 10 de 12 comentários
O Artigo ampliou meus horizontes... PARABÉNS!!!!!!!!!
02/11/2005 12:52am (~18 anos atrás)

Sandro Caiado disse:
Vaçeu pelo artigo!

[]s
17/07/2005 7:28pm (~19 anos atrás)

r fgi disse:
vc me ajudo
12/07/2005 10:02am (~19 anos atrás)

Cléver Anjos disse:
Caro colega, isso pode ser feito via ODBC, dê ma olhada em http://www.mysql.org e procure por ODBC.
Até mais
14/08/2002 8:47am (~22 anos atrás)

Cléver Anjos disse:
Caro colega, isso pode ser feito via ODBC, dê ma olhada em http://www.mysql.org e procure por ODBC.
Até mais
14/08/2002 8:46am (~22 anos atrás)

Alex Douglas disse:
quando eu fazia programa em vb eu criava uma função desta forma:
function chamada Abrir_Db (arquivo as string, usuário as string, senha as string )

opendb (arquivo, usuario, senha)

end function

quando eu chamava esta função em um procedure fazia da seguinte forma

Form_load ()

Abrir_Db ("Teste_Db","alex","123456")

end sub

fiz isto tudo para perguntar existe esta opção em php, se tiver me informe como posso fazer, obrigado!


Valeu....
26/07/2002 5:00pm (~22 anos atrás)

Cléver Anjos disse:
Parabens Anônimo :-)
Realmente tinha um erro. O trecho correto é:
while ($row = BDRowArray($result)){ // Retorna uma linha da seleção
echo "$row[0] -> $row[1]";
}
09/06/2002 3:57pm (~22 anos atrás)

Cléver Anjos disse:
Na verdade é BDRow mesmo.
Essa funcao retorna uma linha da seleção em formato de vetor não como array associativo.
A função BDRows retorna quantas linhas tem a seleção.
05/06/2002 6:40am (~22 anos atrás)

Cléver Anjos disse:
Na verdade é BDRow mesmo.
Essa funcao retorna uma linha da seleção em formato de vetor não como array associativo.
A função BDRows retorna quantas linhas tem a seleção.
05/06/2002 6:37am (~22 anos atrás)

O artigo é bem útil, principalmente pra quem esteja iniciando no assunto e queira ter uma idéia geral sobre o assunto.
Mas, para os que já possuem um certo domínio da linguagem e a utilizam intensamente, aconselho fortemente o uso de bibliotecas de classes como o ADOdb (http://php.weblogs.com/adodb) ou a PEAR::DB (http://pear.php.net). Como essas bibliotecas são totalmente implementadas em PHP, podemos analisar o seu código e modificá-las, caso seja necessário.

Gostaria de parabenizar a iniciativa de se colocar o tema em discussão.

Atenciosamente,
Davi Mitsuo Shibayama
dmitsuo@yahoo.com
21/05/2002 9:19am (~22 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)