Leonardo Frangelli

Desenvolvimento Web

Acesso à Banco de Dados com PHP e a classe PDO::PHP

janeiro 20th, 2008 by admin

Eu adquiri um livro de PHP esse mês (PHP Programando com Orientação à Objetos de Pablo Dall’Oglio) e gostei bastante!
Nele tem um capítulo que trata da conexão com banco de dados com Orientação à Objetos com a classe PDO.

Até o momento eu estava fazendo o uso da classe ADODB, que também recomendo e acho muito legal sua utilização e recursos, mas o que achei legal da PDO::PHP é que ela já é nativa do PHP 5

Sim isso mesmo, não precisamos fazer inclusão de nenhum arquivo!

Então vamos deixar de lero lero e vamos ver como funciona a PDO::PHP.

Uma das coisas mais legais da PDO::PHP, é que com ela você não fica preso a nenhum Sistema Gerenciador de Banco de Dados, pois com ela podemos usar qualquer um dos mais utilizados, como:
MySQL
PostgreSQL
Oracle
SQL Server
Sybase
ODBC
SQLite
entre outros…

A única coisa que muda de um Banco de dados para Outro é a String de conexão que é passada para o método construtor, vejamos alguns exemplos:

MySQL:

$con = new PDO('mysql:host=localhost;port=3306;dbname=teste', 'root', '1234');

PostgreSQL:

$con = new PDO('pgsql:dbname=exemplo;user=usuario;password=senha;host=localhost');

Para fazer uma pesquisa ao banco poderiamos fazer da seguinte forma:

query("SELECT id, artista, titulo FROM album");
    if($rs){
    //percorre os resultados
    foreach($rs as $row){
      echo $row['id'] . ' - ' .
            $row['artista'] . ' - ' .
           $row['titulo'] . "";
    }
    } 
 
    //fecha a conexao
    $con = null; 
 
}catch(PDOException $e){
    print "Erro: " . $e->getMessage() . "";
    die();
}

O resultado disso seria a listagem dos albuns cadastrados em meu banco de dados

1 - DreamTheater - Awake
2 - Djavan - Novelas
3 - Evanescence - The Open Door

Já se quizessemos fazer uma inserssão de um album no banco poderiamos fazer da seguinte forma:

exec("INSERT INTO album (artista, titulo) VALUES('Banda Teste', 'Album Teste')"); 
 
    //fecha a conexao
    $con = null; 
 
}catch(PDOException $e){
    print "Erro: " . $e->getMessage() . "";
    die();
}

A PDO nos oferece também o método fetch() que recebe como parâmetro o “o modo de fetch” que queremos retornar,
nesse parâmetro podemos passar as seguintes constantes:
1) PDO::FETCH_ASSOC -> Retorna um array indexado pelo nome da coluna.
2) PDO::FETCH_NUM -> Retorna um array indexado pela posição numérica da coluna.
3) PDO::FETCH_BOTH -> Retorna um array indexado pelo nome da coluna e pela posição numérica da mesma.
4) PDO::FETCH_OBJ -> Retorna um objeto anônimo (StdCalss), de modo que cada
coluna é acessada como uma propriedade.

Então vamos modificar nosso exemplo de listagem de dados para que possamos fazer uso do método fetch().

query("SELECT id, artista, titulo FROM album");
    if($rs){
    //percorre os resultados
    while($row = $rs->fetch(PDO::FETCH_OBJ)){
      echo $row->id . ' - ' .
            $row->artista . ' - ' .
           $row->titulo . "";
    }
    } 
 
    //fecha a conexao
    $con = null; 
 
}catch(PDOException $e){
    print "Erro: " . $e->getMessage() . "";
    die();
}

Assim “transformamos” nossos registros do banco em objetos e fica muito mais fácil a manipulação dos dados.

É isso ai pessoal qualquer coisa entrem em contato..

Abs.
leonardofrangelli.

Posted in Uncategorized | 1 Comment »