+12

Desmistificando o PDO - PHP Data Object

criado por Rubens Takiguti Ribeiro em 16/12/2009 12:38am
O que é PDO?

PDO (PHP Data Objects) é um módulo de PHP montado sob o paradigma Orientado a Objetos e cujo objetivo é prover uma padronização da forma com que PHP se comunica com um banco de dados relacional. Este módulo surgiu a partir da versão 5 de PHP. PDO, portanto, é uma interface que define um conjunto de classes e a assinatura dos métodos de comunicação com uma base de dados.

Cada sistema gerenciador de bancos de dados (SGBD) pode prover um driver para PDO. Apesar de PDO definir a assinatura dos métodos que cada driver deve implementar, alguns recursos podem não ser suportados. Logo, a chamada a um método pode ser "inútil" dependendo do driver utilizado ou da versão/modelo do servidor de Banco de Dados. Por exemplo, algumas engines do SGBD MySQL não dão suporte a transações, logo, o método "beginTransaction" (responsável por iniciar uma transação) simplesmente não terá efeito sob tais condições.

Ao contrário do que algumas pessoas pensam, PDO não é uma camada de abstração de SQL. Cada SGBD relacional possui uma sintaxe própria para construção de SQL. Embora muitos deles se aproximem da especificação da SQL-92, algumas diferenças existem. Portanto, usar PDO não significa que seu sistema será portável entre diferentes SGBDs. Significa apenas que você se comunicará com uma base de dados através de um conjunto determinado de métodos e classes.

Observação
Criar uma camada da aplicação para abstração de SQL é extremamente complexo. Várias variáveis devem ser levadas em conta e, possivelmente, é preciso abrir mão de muitos recuros específicos. Portanto, existem duas linhas de desenvolvimento: uma defende a utilização de um único tipo de SGBD por aplicação, para que os recursos específicos sejam utilizados ao máximo e de forma otimizada, enquanto outra defende a generalização e o suporte a diferentes bases de dados, tornando o sistema mais portável. Tudo depende do objetivo da aplicação.

Comentários:

Mostrando 1 - 10 de 10 comentários
Parabéns pelo artigo, é realmente motivador!
Obrigado!
31/08/2010 4:57pm (~1 dia atrás)

Trambulhao disse:
Bom artigo, parabéns

Será quem já tem alguém traduzindo no manual do PHP a parte do PDO?
22/03/2010 10:23pm (~5 meses atrás)

Parabéns pelo artigo. Muito importante.
10/03/2010 5:57pm (~5 meses atrás)

Nelson disse:
Parabéns pelo artigo Rubens, muito bem explicadiiinho, legal gostei mesmo.
18/02/2010 12:15am (~6 meses atrás)

Beowulf disse:
conecta.php
<?php
//conecta ao banco de dados
pg_connect( "host=localhost port=5432 dbname=post user=nome_usuario
password=senha_do_banco" ) or die ( "Nao consegui conectar ao PostgreSQL" );

delete.php
?>
<?php include "conection.php"; $sql = pg_exec("DELETE FROM ."$_GET['table_db']." WHERE coment comentario= =".$_GET['coment'].";"); pg_close();
echo "Foi mal aew só para teste,
Eu uso o Postgresql. Mas isso é aula
é meu primeiro post :D
abraços aew a todos e parabens pela aula já estou aprendendo muito"?>

Se quiser apagar este post, tranquilo
09/02/2010 11:26pm (~6 meses atrás)

Beowulf disse:
a
09/02/2010 11:06pm (~6 meses atrás)

Muito bom artigo! obrigado
04/02/2010 10:21pm (~6 meses atrás)

Muito bom Rubens! Deu para ter uma idéia clara da base do PDO. Se não for para utilizar algum framework com abstração de banco de dados, com certeza utilizar PDO deixará o código mais padronizado.
06/01/2010 5:05pm (~7 meses atrás)

Henrique Luz disse:
Excelente artigo Rubens. Bem informativo e objetivo!
Agradeço desde já, pois a partir dele já sei mais ou menos onde direcionar os estudos ao PDO!
Abraços
29/12/2009 5:28pm (~8 meses atrás)

Parabens Rubens, eu estudei PDO mais nunca usei nos projetos que fiz, esse artigo é melhor que muitas explicações de livros que existem vendendo. Obrigado e ate mais.
26/12/2009 11:55am (~8 meses atrás)

Novo Comentário:

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