sábado, 16 de agosto de 2008

INTRODUÇÃO AO PDO (PHP Data Objects)

O PHP Data Objects (PDO), uma consistente interface de acesso a bases de dados em PHP.
Cada banco de dados condutor que implementa, a interface PDO, pode expor as características específicas de cada banco de dados. Note que você não pode executar qualquer base de dados usando as funções PDO por si só, você deve usar um banco de dados específicos de um PDO driver para acessar um banco de dados servidor.

PDO fornece uma camada de abstração de dados, acesso, o que significa que, independente de qual banco de dados que você está usando, você vai usar sempre as mesmas funções para a emissão consultas a dados. PDO não fornece uma base de dado, ele não reescrever SQL. Você deve usar uma full-blown,ou seja, camada de abstração se você precisar dessa facilidade.

Para poder utilizar o PDO a versão do PHP deve ser 5 ou maior.

Nota: Existem outras opções para abstração a Banco de dados como a biblioteca de classes ADODB, porem utilizando o PDO disponível a partir da versão 5 do PHP, ganhamos em performance e em tempo caso for necessário mudarmos nosso banco de dados.

Segue exemplo de utilização:


exemplo.php

  1. <?php
  2. //caminho do servidor do banco de dados
  3. $dbHost = "localhost";
  4. //Banco de dados ex: mysql, pgsql, mssql e outros

  5. $dbType = "mysql";
  6. // nome do banco de dados
  7. $dbName = "pdo_teste";
  8. //usuario do banco de dados

  9. $dbUser = "root";
  10. //senha do banco de dados
  11. $dbPass = "1234";
  12. //conecta com o banco setado acima

  13. $conexao = new PDO( $dbType.':host='. $dbHost.';dbname='.
  14. $dbName, $dbUser, $dbPass,

  15. array(PDO::ATTR_PERSISTENT => true)//setar se conexão será persistente ou não
  16. );
  17. $SQL = "SELECT * FROM tb_teste";//SQL para seleciona registros da base

  18. $rs = $conexao->prepare($SQL);//prepara SQL para realizar a consulta
  19. $rs->execute();//executa consulta

  20. ?>
  21. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  22. <html xmlns="http://www.w3.org/1999/xhtml">
  23. <head>
  24. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  25. <title>Untitled Document</title>
  26. </head>
  27. <body>
  28. <?
  29. //exibe dados do recordset
  30. while ($field = $rs->fetch(PDO::FETCH_ASSOC)) {

  31. echo "O código <b>".$field["COD_TESTE"]."</b> é referente ao nome <b>".$field["NOM_TESTE"]."</b><br />";

  32. }
  33. //limpa dados do record set
  34. $field = null;
  35. ?>
  36. </body>
  37. </html>
Criar banco para Mysql

-- Tempo de Geração: Ago 16, 2008 as 03:16 AM
-- Versão do Servidor: 6.0.3
-- Versão do PHP: 5.2.5
--
-- Banco de Dados: pdo_teste
--
--
-- Estrutura da tabela tb_teste
--

CREATE TABLE tb_teste (
COD_TESTE int(11) NOT NULL AUTO_INCREMENT,
NOM_TESTE varchar(255) NOT NULL,
PRIMARY KEY (COD_TESTE)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

INSERT INTO tb_teste (COD_TESTE, NOM_TESTE) VALUES (1, 'nome 1');
INSERT INTO tb_teste (COD_TESTE, NOM_TESTE) VALUES (2, 'nome 2');

Criar banco para PostgreSQL

-- Database: pdo_teste

-- DROP DATABASE pdo_teste;

CREATE DATABASE pdo_teste
WITH OWNER = root
ENCODING = 'UNICODE'
TABLESPACE = pg_default;

CREATE TABLE tb_teste
(
"COD_TESTE" int4 NOT NULL DEFAULT nextval('public.tb_teste_cod_teste_seq'::text),
"NOM_TESTE" varchar(255),
CONSTRAINT tb_teste_pkey PRIMARY KEY ("COD_TESTE")
) ;

INSERT INTO tb_teste (COD_TESTE , NOM_TESTE )VALUES ('1', 'nome 1');
INSERT INTO tb_teste (COD_TESTE , NOM_TESTE )VALUES ('2', 'nome 2');

Faça download dos arquivos do Artigo, clique aqui.

Veja mais: http://br2.php.net/manual/pt_BR/book.pdo.php

Espero que tenham gostado em breve mais artigos sobre PDO.
Abraço a todos e bom final de semana.

0 comentários: