Archive for julho de 2009

Introdução ao PDO – PHP Data Objects

Introdução

Olá amigos, em meu último artigo eu explanei um pouco sobre como utilizar a biblioteca ADOdbPHP para conexões com banco de dados. Essa ferramenta é muito utilizada por sistemas web devido as facilidades de utilização e implementação, bem como a agilidade no desenvolvimento que ela proporciona, sua principal característica é proporcional ao desenvolvedor uma “interface” única de manipulação de querys e de dados retornados do banco, independente de qual SGDB você utilize. É uma classe de abstração.

Pois bem, agora (já faz um tempinho) o PHP possui algo parecido, chamado de PDO (PHP Data Objects).  O PDO provê uma camada de acesso a dados, ou seja, ele funciona como uma interface para o desenvolvedor, assim como faz o ADOdbPHP só que com uma leve diferença, o PDO não é uma classe de abstração. Resumindo, você pode utilizar o mesmo conjunto de funções para se comunicar com o banco de dados escolhido.

Mas uma observação deve ser feita, a PDO não provê uma abstração do banco de dados, o que quer dizer que as SQLs devem ser construídas conforme o banco de dados escolhido.

Instalação

A PDO é provida no PHP 5.1, mas desde a versão 5.0 você pode utilizar ela através da extensão PECL.

Linux/Unix

Se for compilar o pacote ou fazer a instalação via código fonte, basta adicionar a diretiva –enable-pdo=shared –with-pdo-sqlite=shared para o comando ./configure. Caso já possua o PHP instalado, você pode lançar mão da instalação via PECL, basta executar o comando “pecl install pdo”, e pronto, será gerada a extensão, depois é só configurar o php.ini adicionando a linha “extension=pdo.so” para habilitar o suporte.
Não se esqueça de reiniciar o Apache.

Windows

Em sistemas Windows fica mais fácil ainda habilitar o pdo, basta descomentar a linha referente a extensão. Normalmente ela vem comentada como no exemplo abaixo:

;extension=php_pdo.dll

Basta tirar o “;” para descomentar e reiniciar o Apache.

Utilizando a PDO

Agora que já estamos(supostamente) com tudo pronto para utilizar a PDO, vamos ver alguns exemplos:

try {
    $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
    foreach($dbh->query('SELECT * from FOO') as $row) {
        print_r($row);
    }
    $dbh = null;
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "
"; die(); } $conn = null;

Nesse nosso exemplo, temos uma conexão e uma query de consulta ao banco, agora vamos explicar o que acontece: A string de conexão com o banco seque o padrão onde o primeiro campo é o driver utilizado para conexão, no nosso caso o “mysql”, logo após vem as informações de host onde está o servidor de banco de dados que no nosso caso está na própria máquina (por isso o “localhost”), e o nome do banco de dados que no nosso caso é o “banco_teste”.

Logo após a query é executada através do método “query”, que retorna o resultado como um array, que por sua vez é trabalhado pelo foreach, sendo acessado através da variável $row_result.

Ao final temos a definição do objeto $conn para NULL.

Aos que necessitam ou querem usar conexões permanentes, um array de parâmetros pode ser passado, logo após a senha do usuário. Sendo assim linha que faz a conexão com o banco fica mais ou menos assim:

$conn = new PDO('mysql:host=localhost;dbname=banco_teste', "meu_usuario", "minha_senha", array(
    PDO::ATTR_PERSISTENT => true
));

Bem, como este é apenas um breve artigo introdutório, vamos ficar por aqui. Senão irei desanimar e não conseguirei postar o artigo todo.. rs, e lembre-se, em caso de dúvida, entrem na lista do PHP-ES e perguntem, estarei por lá para responder. ;)

,

1 Comentário

VMWare 1.0.9 + Kernel Linux 2.6.28.9

Olá Amigos,

Agora sim, finalmente consegui por o VMWare 1.0.9 no kernel 2.6.28.9, e acredito que funcione também para qualquer série 2.6.28.

O que fiz foi, claro, baixar o VMWare no site oficial, depois baixei o vmware-update-2.6.27-5.5.7-2.tar.gz, descompacte e rode o runme.pl que se encontra dentro da pasta criada pelo vmware-update. Pronto, resolvido ;)

, , ,

2 Comentários

Get Adobe Flash playerPlugin by wpburn.com wordpress themes