Conexão do PHP com Banco de Dados PostgreSQL

Seguindo o padrão de OO (Orientação a Objetos) vamos criar uma classe para fazer a conexão com o banco de dados PostgreSQL.

Neste exemplo vou simplificar… creio que todos leram o post anterior e já possuem o banco de dados criado no PostgreSQL com os mesmos campos.

Relembrando:

Tabela: editoria
Campos:
ideditoria, nome, descricao

Para iniciar, criaremos o a classe:

Arquivo: cPostgreDB.php

<?php
    class cPostgreDB
    {
        var $host;
        var $username;
        var $password;
        var $port;
        var $dbname;
        var $error = null;
        var $dbconnect;
        var $query;
        var $result;
        var $oid = null;
        var $oid_res;
        var $persistent;

        function cPostgreDB($DB="banco_de_dados", $Host="localhost", $PgPort=5432, $User="usuario_do_banco", $pass="senha_do_banco", $persist=0)
        {
            $this->host=$Host;
            $this->dbname=$DB;
            $this->username=$User;
            $this->password=$pass;
            $this->port=$PgPort;
            $this->persistent=$persist;
            $this->Connect();
        }

        function Connect()
        {
            $connect="host=".$this->host." port=".$this->port." dbname=".$this->dbname." user=".$this->username;
            if (!empty($this->password))
                $connect.=" password=".$this->password;
            if ($this->persistent)
                $this->dbconnect=pg_pconnect ($connect);
            else
                $this->dbconnect=pg_connect ($connect);
            if (!$this->dbconnect)
                $this->error="cannot connect to database ".$this->dbname;
        }
        
        function fechaConn()
        {
            pg_close($this->dbconnect);
        }

        /// Realizando ações no banco
        
        function retornaEditorias()
        {
            $query         =     "select * from editoria;";
            $result         =     @pg_query($query);
            if (!$result)
                return false;
            else
                return $result;
        }

        function insereEditoria($nome, $descricao)
        {
            $query         =     "insert into editoria (nome, descricao) values ('$nome', '$descricao');";
            $result         =     @pg_query($query);
            if (!$result)
                return false;
            else
                return $result;
        }

?>

Em ambiente de desenvolvimento, aconselho utilizar a linha abaixo:
$result = @pg_query($query) or die (“ERRO DE BANCO:
“.pg_last_error());

Neste caso, ocorrendo algum erro, teremos como visualiza-lo.

Criada a nossa classe, vamos ver como fica o arquivo para acessar os dados:

Arquivo: teste.php

<?php
       //Incluindo minha classe
       include_once('cPostgreDB.php');
       
       //Instanciando o objeto da classe
       $dados = new cPostgreDB();

      $retDados = $dados->retornaEditorias();
      while ($retorno = pg_fetch_array($retDados))
      {
            $ideditoria= $retorno['ideditoria'];
            $nome= $retorno['nome'];
            $descricao= $retorno['descricao'];

            echo 'Id: '.$idcategoria.'
'; echo 'Nome: '.$nome.'
'; echo 'Descrição: '.$descricao.'
'; } //Inserindo dados $dados ->insereEditoria('Nome da Editoria', 'Descrição da editoria teste'); ?>

Com este outro exemplo, vimos outra alternativa para utilizar banco de dados PostgreSQL com conceito OO e, mais uma vez, podemos separar comandos SQL de páginas php.

Espero ter ajudado.

Até !

Share Button

Conexão do PHP com Banco de Dados MySQL

Existem diversas formas de criar conexões entre bancos de dados MySQL e PHP. Hoje mostrarei uma forma simples, segura que elimina códigos e scripts SQL no corpo das páginas php.

Para iniciar, precisaremos criar um banco de dados e suas tabelas.

Script Banco de Dados (MySQL):

CREATE DATABASE IF NOT EXISTS teste_php_my;
USE teste_php_my;

DROP TABLE IF EXISTS `editoria`;
CREATE TABLE `editoria` (
  `ideditoria` int(10) unsigned NOT NULL auto_increment,
  `nome` varchar(100) NOT NULL,
  `descricao` text NOT NULL,
  PRIMARY KEY  (`ideditoria`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Com o banco de dados criado, passamos a Classe PHP responsável por conectar no banco e realizar as ações de inserir, alterar, excluir e retornar.

Arquivo: conectaBanco.php

<?php 
    class conectaBanco
    {
        var $conect;
        function conectaBanco()
        {

        }

        function getCon()
        {
            return $this->conect;
        }

        function conectar($servidor, $usuario, $senha, $banco) 
        {
            if(!($con=@mysql_connect($servidor, $usuario, $senha)))
            {
                echo"Erro ao conectar a Base de Dados !!";
                echo mysql_error();
                exit();
            }
            if (!@mysql_select_db($banco, $con)) 
            {
                echo "Erro em selecionar a Base de dados !!";
                echo mysql_error(); 
                exit();
            }
            $this->conect=$con;
            return true;    
        }
    }
?>

Este arquivo será responsável realizar a conexão com o banco de dados.
Após esta etapa, criaremos o arquivo (classe) responsável por executar as ações (métodos).

Arquivo: cBancoDados.php

<?php
    include_once("conectaBanco.php");

    class cBancoDados{
        function cBancoDados(){
            $servidor = "localhost";
            $usuario = "nome_do_usuario_do_banco";
            $senha = "senha_do_banco";
            $banco = "teste_php_my";

            $con = new conectaBanco;
            $con->conectar($servidor, $usuario, $senha, $banco);
        }

        function retornaEditorias(){
            $query         =     "select * from editoria;" ;
            $result         =     @mysql_query($query) or die (mysql_error());
            if (!$result)
                return false;
            else
                return $result;
        }

        function retornaEditoria($id){
            $query         =     "select * from editoria where ideditoria = $id;" ;
            $result         =     @mysql_query($query) or die (mysql_error());
            if (!$result)
                return false;
            else
                return $result;
        }

        function insereEditoria($nome, $descricao){
            $query         =     "insert into editoria (nome, descricao) values ('$nome', '$descricao')" ;
            $result         =     @mysql_query($query) or die (mysql_error());
            if (!$result)
                return false;
            else
                return $result;
        }

        function excluiEditoria($id){
            $query         =     "delete from editoria where ideditoria = $id;" ;
            $result         =     @mysql_query($query) or die (mysql_error());
            if (!$result)
                return false;
            else
                return $result;
        }

        function alteraEditoria($id, $nome, $descricao){
            $query         =     "update editoria set nome = '$nome', descricao = '$descricao' where ideditoria = $id;" ;
            $result         =     @mysql_query($query) or die (mysql_error());
            if (!$result)
                return false;
            else
                return $result;
        }

    }
?>

Os métodos da classe cBancoDados que são responsáveis por realizar as ações e os scripts SQL.

Agora vamos ao arquivo onde criaremos o objeto e chamaremos os métodos para realizar as ações.

Arquivo: teste.php

<?php
    include_once('cBancoDados.php');

    // Instanciando o objeto de cBancoDados - obtemos a conexão com o banco.
    $dados = new cBancoDados;

   //Realizando uma chamada ao objeto - executamos o script sql do metodo retornaEditorias()
   //O array $dadosRetorno contém o resultset com o resultado da consulta sql
   $dadosRetorno= $dados->retornaEditorias();

   //Percorrendo o resultser e exibindo dados de retorno
   while ($retorno = mysql_fetch_array($dadosRetorno)){
            $ideditoria= $retorno['ideditoria'];
            $nome= $retorno['nome'];
            $descricao= $retorno['descricao'];

            echo 'Id: '.$idcategoria.'
';
            echo 'Nome: '.$nome.'
';
            echo 'Descrição: '.$descricao.'
';

   }

   //Inserindo dados
   $dados ->insereEditoria('Nome da Editoria', 'Descrição da editoria teste');
?>

Com este exemplo vimos que podemos separar completamente os scripts SQL das páginas html e php. Além de ficar mais simples a manutenção podemos reutilizar diversos métodos em diversos pontos diferentes da aplicação web.

Espero que tenha ajudado…

Até Mais (:

Share Button