Classe de abstração de dados usando PDO
Monday, January 30th, 2006Eu 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:
// 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:
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 ):
$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:
$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:
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!