Category Archives: PHP-PDO

PHP Data Object – Instalação

Podemos observar que o PDO não precisa de nenhuma library (biblioteca) de elementos acoplados ao PHP 5 para funcionar, pois vem nativa a linguagem. Vamos continuar traduzindo a instalação direto do site php.net

Instalação

O PDO e o driver para o SQLLite chamado PDO_SQLITE são habilitados por padrão na versão 5.1.0 do PHP. Você precisará habilitar o driver do PDO do seu banco de dados. Para saber mais sobre o driver do seu banco de dados, consulte a documentação deste a fim de achar o driver correto, etc. Todos os drivers do PDO devem ser carregados depois da instalação do Driver PDO em si, isso se a extensão do PDO for compartilhada. Veja no link Detalhes da instalação em inglês.

Quando você instalar o PDO como um modulo compartilhado, o arquivo do PHP de configuração, chamado PHP.ini precisará ser atualizado para que a extensão do PDO seja carregada automaticamente quando o PHP for executado (iniciado). Você então precisará habilitar qualquer driver especifico também. Veja se ele esta listado no arquivo php.ini na linha dos Drivers de banco, como exemplo abaixo:

extension=php_pdo.dll " O PDO tem q esta habilitado primeiro!
extension=php_pdo_firebird.dll " Aqui  a extensão do DB Firebird
extension=php_pdo_informix.dll " Informix
extension=php_pdo_mssql.dll "Sql Server
extension=php_pdo_mysql.dll " MySQL
extension=php_pdo_oci.dll "Oracle
extension=php_pdo_oci8.dll "Oracle 8
extension=php_pdo_odbc.dll " Conexão a outros banco.
extension=php_pdo_pgsql.dll "PostgreSQL
extension=php_pdo_sqlite.dll

Com o PDO você seleciona qualquer banco de dados que esteja habilitado no arquivo PHP.ini, como nas linhas acima.

Um abraço pessoal,
Léo

PHP Data Object – Configuração e constantes

Bom, agora vamos ver como a gente pode “configurar”, dá uma de joão bobo a gente poderá mudar configuração do nosso PDO somente no PHP.ini. Porém não como um init_set da vida no PHP! :-) No site do PHP.net não cobre muito essas configurações.. Vamos continuar ae com a explicações.

Vamos ver as constantes do PDO para usarmos em nossos programas. Vou colocar um exemplo, na seqüência você poderá modificar como achar melhor.

<?php
$pdo = new PDO("mysql:host=localhost; dbname=nome","username","passuser");

if ($pdo->getAttribute(PDO::ATTR_DRIVER_NAME)=='mysql'){
echo "O Driver do banco é para MySQL!" ;
}
?>

A gente, na realidade, vai utilizando os métodos da instância PDO(), ae é só utilizar os tais que nesse exemplo é o método PDO::ATTR_DRIVER_NAME. As constantes que iremos ver abaixo, são definidas pela extensão do PDO. Podem ser compilados junto ao PHP  ou dinamicamente carregados em tempo de execução. Veja os atributos no site do PHP ou Atributos do PDO com a descrição de todos esses métodos.

Criei uma comunidade no Orkut para essa extensão :-)

PHP Data Objetct

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.

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çãoCriar 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.

Fonte: Desmistificando PDO