PHP

PDO – Conceitos Fundamentais

Written by Pedro Mendes · 2 min read >

Com a chegada da quinta versão do PHP (na verdade na 5.1), nasceu uma poderosa ferramenta que ainda hoje pouca gente já parou pra estudar: o PHP Data Objects ou PDO.

Pra inicio de conversa, o PDO é uma camada de acesso a dados que como o php.net promete, “indiferente do banco de dados que esteja usando, você poderá usar as mesmas funções para executar queries ou pegar dados”. Desenvolvida pelo Wez Furlong – um desenvolvedor do core PHP que até tenho na minha lista de links no lado esquerdo, o PDO realmente cumpre o que promete em unificar as interfaces de acesso a dados. Ele foi escrito em C e segundo alguns evangelistas da extensão, não perde em nada em desempenho para as extensões tradicionais.

Ainda hoje temos a opção de usar no PHP os antigos drivers especificos para cada DB, mas isso já tem caído em desuso. Vale repetir o que a Zend comentou, que o PDO não é uma abstração do que já tinha, ele é a reescrita dos drivers fornecendo uma mesma interface (na maioria das vezes) para o desenvolvedor. Pra quem usa o Pear (se você não conhece deveria) talvez já tenha se esbarrado no PearDB, que esta sim é uma abstração. Mas o PDO não.

Composição e Bases Suportadas

O PHP Data Objects suporta nativamente as seguintes extensões: PostgreSQL, MySQL (3,4,5), Firebird, Sybase, Informix, Oracle, ODBC, DBLIB, IBM DB2, SQLite (2,3), MSSQL e FreeTDS.

Para usar o PDO você terá que ter no mínimo duas extensões : a do core, que geralmente já vem instalada por default, e a do banco desejado, como por exemplo o pdo_mysql.

O forma mais fácil para instalar os PDO drivers em uma versão do PHP previamente instalado é através do PHP Extension Comunity Library. Uma vez tendo o PECL instalado, basta digitar pecl install <nome_do_driver> e depois atualizar o php.ini adicionando na parte de extensões o driver instalado.

Conectando ao bd

Vou comentar só sobre como conectar ao banco de dados e criar um handle para a conexão, pois basicamente é isso que difere de um bd para o outro – ao final, vou deixar alguns links com melhores exemplos.

// Criando o handle de uma conexão com o PostgreSQL
$db = new PDO(“pgsql:dbname=MEU_DB;host=localhost”, “USUARIO”, “SENHA” );

// Criando o handle de uma conexão com o MySQL
$db = new PDO(“mysql:dbname=MEU_DB;host=localhost”, “USUARIO”, “SENHA” );

Viu como é simples? E com os outros drivers o procedimento é bem parecido. Vale ressaltar que por dicas da própria Zend, que o processo de criação de um handle sempre deve estar dentro de um try/catch, para que informações do servidor não sejam lançadas para o usuário. Fique atento!

Para dar um close na conexão basta você atribuir qualquer valor ao handle, como null por exemplo.

Conclusão

O PDO veio para substituir de vez as antigas formas de acesso a dados no PHP. Existe um número generoso de artigos sobre essa ferramenta, e para não ficar recriando a roda, deixo abaixo alguns links interessantes de fontes que já publicaram algumas receitas de bolo:

Manual Oficial em Português
DevShed – Using PDO Objects in PHP5
Post anterior com slides do criador do PDO
HTMLStaff – PDO: Bancos de dados no PHP 5

Magento em um ambiente distribuído

Pedro Mendes in PHP
  ·   4 min read

Factory Pattern e PHP

Pedro Mendes in PHP
  ·   9 sec read

Deixe um comentário

O seu endereço de e-mail não será publicado.