Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
extension=php_pdo_oci.dll "Oracle
extension=php_pdo_oci8.dll "Oracle 8
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
0 Comments
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.
view source
print?
1 <?php
2 $
p
d
o
=
n
e
w
P
D
O
(
"
m
y
s
q
l
:
h
o
s
t
=
l
o
c
a
l
h
o
s
t
;
d
b
n
a
m
e
=
n
o
m
e
"
,
"
u
s
e
r
n
a
m
e
"
,
"
p
a
s
s
u
s
e
r
"
)
;
3
if (
$pd
o-
>ge
tAt
tri
but
e(P
DO:
4 :AT
TR_
DRI
VER
_NA
ME)
=='
mys
ql'
){
echo
"O
Drive
r do
banc
5
oé
para
MyS
QL!"
;
6 }
7 ?>
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.
The PHP Data Objects é uma extenção que vem no PHP 5 para você ter um controle dos
banco de dados, como por exemplo o ADODB, em que você controla vários banco de dados
somente mudando uma linha de comando. Com o PDO é a mesma coisa.
extension=php_pdo.dll
extension=php_pdo_firebird.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_oci8.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
Com isso você já vai se conectar ao banco de dados: segue a lista para como se conectar ao
bancos suportados:
PDO_DBLIB:
sybase:host=localhost; dbname=testdb
mssql:host=localhost; dbname=testdb
PDO_FIREBIRD:
firebird:User=john;Password=mypass;Database=DATABASE.GDE;DataSource=loca
lhost;Port=3050
PDO_MYSQL:
mysql:host=localhost;dbname=testdb
PDO_OCI
oci:mydb
oci:dbname=//localhost:1521/testdb
PDO_ODBC:
odbc:DSN=SAMPLE;UID=john;PWD=mypass
PDO_PGSQL(PostGreSQL):
pgsql:host=localhost port=5432 dbname=testdb user=john password=mypass
PDO_SQLITE:
sqlite:/path/to/database
sqlite::memory:
Depois de eu ter feito a conexão ao MySQL eu já informei qual banco ele deve fazer a
pesquisa agora vamos a brincadeira...
#:: a variavel $pdo contem agora algumas sintexe para podermos controlar o
banco de dados.
#:: aqui estamos executando o comando SQL que haviamos feito logo acima
$stmt->execute();
#:: apos ter feito esse comando como o nosso PDO é uma classe então essa
variavel $smtmt ja contem varios resultados sobre o nosso comando
#:: agora vamos criar um laço para pegar as info do banco de dados
$nome = $row['nome'];
echo $nome;
Agora nós já temos nossa primeira consulta via PDO, agora faça um teste, troque somente a
primeira linha "$pdo = new PDO("mysql:host=localhost; dbname=banco", "usuario",
"senha");" para outro banco de dados e você verá que ele busca da mesma maneira
somente mudando essa linha com isso você pode crir sistema para vários banco de dados!