Acesso à Banco de Dados com PHP e a classe PDO::PHP
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 »