-3

Classe de abstração de dados usando PDO

criado por Adler Medrado em 17/02/2006 9:26am
Eu criei uma pequena classe de abstração de dados, para usar com algumas outras classes que tenho que implementam algums patterns como DAO, TO, Factory, entre outros.

A Classe que estarei apresentando aqui é apenas a classe de conexão ao banco de dados utilizando PDO.

Posteriormente estarei publicando as demais classes que compões este pacote para infra-estrutura que citei. Apenas não o publico agora pois estou finalizando algumas alterações.

Para utilizar este exemplo, você deve usar o PHP 5.1 ou posteriores com a biblioteca de PDO e PDO_MYSQL habilitadas.

Os parâmetros de conexão ao banco se encontram no método construtor da classe de Connection.class.php conforme segue abaixo:

<?php
// troque mysql pelo nome do banco que você for utilizar, por exemplo:
// pgsql, etc.
public function __construct()
{
    $this->dsn = "mysql:dbname=pessoas;host=localhost";
    $this->username = "root";
    $this->password = "";
}
?>

Para se conectar ao banco:

<?php
include_once("connection/Connection.class.php");
$conn = new Connection();
try {
    $conn->connect();
} catch (Exception $e) {
    print_r($e);
}
?>

Como executar comandos DML (Insert, Update, Delete):

<?php
$query1 = "INSERT INTO usuarios (nome, email) VALUES (’Adler Brediks Medrado’,'adler@neshertech.net’)";

try {
    $boInclusao = $conn->executeDML($query1);
} catch (Exception $e) {
    print_r($e);
}
?>

O Comando SQL acima foi um INSERT sendo o mesmo processo para um comando UPDATE ou DELETE.

Como retornar dados do banco:

<?php
$query2 = "select * from usuarios";
try {
    $rsUsuarios = $conn->executeQuery($query2);
} catch (Exception $e) {
    print_r($e);
}

foreach($rsUsuarios as $indice => $valor) {
    echo $indice." -> ".$valor;
}
?>

Como inicializar uma transação e executar commit e rollback:

<?php
try {
    $conn->beginTransaction();
} catch (Exception $e) {
    print_r($e);
}

// Commit
try {
    $conn->commit();
} catch(Exception $e) {
    print_r($e);
}

// Rollback
try {
    $conn->rollback();
} catch(Exception $e) {
    print_r($e);
}
?>

Como você viu, esta classe é pequena e simples.
Você pode fazer o download das classes e de um exemplo, baixando os fontes em PHP Classes

Por favor, deixe seus comentários, dúvidas, etc.

Obrigado!

Comentários:

Mostrando 1 - 7 de 7 comentários
Só lembrando que quem usar PHP 5.0 pode também usar o PDO instalando o pacote PECL pecl.php.net/pdo

[z]
24/06/2006 9:07am (~10 anos atrás)

gostei do artigo...
13/04/2006 3:50pm (~10 anos atrás)

com o link postado pelo Márcio tive uma visão mais ampla do PDO, seu artigo ajudou bastante também..

Abraço
29/03/2006 6:44am (~10 anos atrás)

Adler Medrado disse:
Olá Márcio, obrigado pela dica.

Como esta pequeno artigo foi referente a uma classe de abstração que usa PDO eu preferi não entrar em detalhes do PDO, colocando apenas o link para download da classe. Porém fica registrada sua sugestão e nos próximos artigos levarei em consideração.

Muito obrigado novamente.

adler medrado
06/03/2006 4:41am (~10 anos atrás)

Click disse:
Adler, antes de tudo parabéns para iniciativa!
No título do seu artigo fala sobre PDO, mas o conteúdo do artigo está fragmentado. Então é importante sempre deixar uma referência. Aqui vai a do PHP Data Objects (PDO): http://br2.php.net/pdo
[]s
05/03/2006 4:23pm (~10 anos atrás)

Adler Medrado disse:
Obrigado.
O link para pegar os arquivos é: http://www.phpclasses.org/browse/package/2855.html

qualquer duvida entre em contato!!!
21/02/2006 5:52am (~10 anos atrás)

gostei do artigo.
Parabéns...
21/02/2006 5:31am (~10 anos atrás)

Novo Comentário:

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