SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
O que você precisa saber 
sobre PDO ?
Rodrigo “pokemaobr” Cardoso 
✓ Bacharel em Matemática Aplicada e Computacional pela 
✓ Programou em 
✓ Joga 
✓ Evangelista 
@pokemaobr 
Quem sou eu?
Um amigo de um amigo meu disse 
que a extensão do mysql está 
obsoleta. (deprecated)
O cliente de última hora decidiu 
mudar o banco de dados do projeto 
para SQL Server.
O que fazer?
Nós temos a solução
P 
D 
O 
H P 
ATA 
B J E C T S
É uma extensão
É orientado a objetos
Mesmos comandos em SQL para 
bancos diversos
Menos código
E funciona para quais bancos?
E o que eu preciso?
PHP 5.1+
PHP 5.1+ 
SO ou DLL do PDO (PHP < 5.3)
PHP 5.1+ 
SO ou DLL do PDO (PHP < 5.3) 
SO ou DLL do PDO do banco
PDO, Ativar!
extension=php_pdo.so (PHP < 5.3) 
extension=php_pdo_firebird.so 
extension=php_pdo_informix.so 
extension=php_pdo_mssql.so 
extension=php_pdo_mysql.so 
extension=php_pdo_oci.so 
extension=php_pdo_oci8.so 
extension=php_pdo_odbc.so 
extension=php_pdo_pgsql.so 
extension=php_pdo_sqlite.so 
extension=php_pdo.dll (PHP < 5.3) 
extension=php_pdo_firebird.dll 
extension=php_pdo_informix.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
Mas tudo isso?
Só ative o que for usar :)
Conectar em forma de mySQL! 
$connMysql = new PDO('mysql:host=localhost;dbname=phpsplocaweb', 'usuario', 
'senha');
Conectar em forma de Firebird! 
$connFirebird= new PDO('firebird:dbname=C:/db/phpsplocaweb.gdb;host=localhost, 'usuario', 
'senha');
Conectar em forma de SQLite! 
$connSqlite = new PDO('sqlite:phpsplocaweb.db');
E o SQL único?
Já está vindo...
INSERT com parâmetros 
conhecidos...
<?php 
$connMysql = new PDO('mysql:host=localhost;dbname=phpsplocaweb', 'usuario', 
'senha'); 
$novoCliente = array('nome'=>'Roberto','idade'=>'27','loja'=>'Centro'); 
$connMysql->prepare('INSERT INTO clientes (nome,idade,loja) VALUES (:nome,: 
idade,:loja)')->execute($novoCliente);
INSERT com parâmetros 
desconhecidos...
<?php 
$connMysql = new PDO('mysql:host=localhost;dbname=phpsplocaweb', 'usuario', 
'senha'); 
$novoCliente = array('nome'=>'Roberto','idade'=>'27','loja'=>'Centro'); 
$insert = $connMysql->prepare('INSERT INTO clientes (nome,idade,loja) VALUES (?, ?, 
?)') 
$insert->bindParam(1,$novoCliente['nome']); 
$insert->bindParam(2,$novoCliente['idade']); 
$insert->bindParam(3,$novoCliente['loja']); 
$insert->execute();
Realizando um SELECT com o 
método “query” retornando um 
array
<?php 
$connMysql = new PDO('mysql:host=localhost;dbname=phpsplocaweb', 'usuario', 
'senha'); 
$sql = 'SELECT nome, idade, loja FROM clientes ORDER BY nome'; 
$query = $connMysql->query($sql); 
foreach ($query as $row) { 
print $row['nome'] . "<br />"; 
print $row['idade'] . "<br />"; 
print $row['loja'] . "<br />"; 
}
Seu Retorno 
Amanda 
16 
Caxias 
Josué 
20 
Sumaré 
Roberto 
15 
Centro
Realizando um SELECT com o 
método “query” retornando um 
objeto
<?php 
$connMysql = new PDO('mysql:host=localhost;dbname=phpsplocaweb', 'usuario', 
'senha'); 
$sql = 'SELECT nome, idade, loja FROM clientes ORDER BY nome'; 
$query = $connMysql->query($sql); 
while ($row = $query->fetch(PDO::FETCH_OBJ)) { 
print $row->nome . "<br />"; 
print $row->idade . "<br />"; 
print $row->loja . "<br />"; 
}
Seu Retorno 
Amanda 
16 
Caxias 
Josué 
20 
Sumaré 
Roberto 
15 
Centro
UPDATE utilizando o método 
“query”
<?php 
$idade = '20'; 
$nome = 'Angela'; 
$connMysql = new PDO('mysql:host=localhost;dbname=phpsplocaweb', 'usuario', 
'senha'); 
$query = 'UPDATE clientes SET idade = :idade WHERE nome = :nome'; 
$update = $connMysql->prepare($query)->execute(array( 
':idade' => $idade, 
':nome' => $nome 
));
DELETE utilizando os métodos 
“prepare” e “execute”
<?php 
$nome = 'Roberta'; 
$connMysql = new PDO('mysql:host=localhost;dbname=phpsplocaweb', 'usuario', 
'senha'); 
$query = 'DELETE FROM clientes WHERE nome = :nome'; 
$delete = $connMysql->prepare($query); 
$delete->blindParam(':nome', $nome); 
$delete->execute();
E tem muito mais...
Dúvidas?
Obrigado! 
br.linkedin.com/in/rwdmc/ 
www.github.com/pokemaobr 
www.facebook.com/pokemaobr

Mais conteúdo relacionado

Mais procurados

Mude seu jeito de pensar com MongoDB
Mude seu jeito de pensar com MongoDBMude seu jeito de pensar com MongoDB
Mude seu jeito de pensar com MongoDBDouglas Lira
 
Autenticacao em APIs com SSL
Autenticacao em APIs com SSLAutenticacao em APIs com SSL
Autenticacao em APIs com SSLMarcelo Milhomem
 
Php 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies CabecalhosPhp 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies CabecalhosRegis Magalhães
 
Aula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias RelacionadasAula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias RelacionadasCJR, UnB
 
Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4Carlos Santos
 
Da argila ao forte: como desenvolver uma loja com PagSeguro
Da argila ao forte: como desenvolver uma loja com PagSeguroDa argila ao forte: como desenvolver uma loja com PagSeguro
Da argila ao forte: como desenvolver uma loja com PagSeguroMichael Castillo Granados
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidademetzen
 

Mais procurados (10)

Implementação de
Implementação de Implementação de
Implementação de
 
Mude seu jeito de pensar com MongoDB
Mude seu jeito de pensar com MongoDBMude seu jeito de pensar com MongoDB
Mude seu jeito de pensar com MongoDB
 
Autenticacao em APIs com SSL
Autenticacao em APIs com SSLAutenticacao em APIs com SSL
Autenticacao em APIs com SSL
 
Php 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies CabecalhosPhp 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies Cabecalhos
 
Aula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias RelacionadasAula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias Relacionadas
 
Bread board
Bread boardBread board
Bread board
 
Minicurso mongo db
Minicurso mongo dbMinicurso mongo db
Minicurso mongo db
 
Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4
 
Da argila ao forte: como desenvolver uma loja com PagSeguro
Da argila ao forte: como desenvolver uma loja com PagSeguroDa argila ao forte: como desenvolver uma loja com PagSeguro
Da argila ao forte: como desenvolver uma loja com PagSeguro
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidade
 

Destaque

Saúde integral ou Medicina de Corpo, Alma e Espírito
Saúde integral ou Medicina de Corpo, Alma e EspíritoSaúde integral ou Medicina de Corpo, Alma e Espírito
Saúde integral ou Medicina de Corpo, Alma e Espíritoclinicavida
 
iMOR - Plasma Rico em Plaquetas (PRP)
iMOR - Plasma Rico em Plaquetas (PRP)iMOR - Plasma Rico em Plaquetas (PRP)
iMOR - Plasma Rico em Plaquetas (PRP)institutomor
 
Tsarong fundamentos medicina_tibetana
Tsarong fundamentos medicina_tibetanaTsarong fundamentos medicina_tibetana
Tsarong fundamentos medicina_tibetanaEditora Chakpori
 
Mesoterapia
MesoterapiaMesoterapia
MesoterapiaGCBA
 
PRP - Plasma rico em plaquetas
PRP - Plasma rico em plaquetasPRP - Plasma rico em plaquetas
PRP - Plasma rico em plaquetasclinicavida
 
Curso de mesoterapia e hidrolipoclasia
Curso de mesoterapia e hidrolipoclasiaCurso de mesoterapia e hidrolipoclasia
Curso de mesoterapia e hidrolipoclasia94414980
 
Botox Tratamiento facial
Botox Tratamiento facialBotox Tratamiento facial
Botox Tratamiento facialRolando
 
Historia toxina botulínica
Historia toxina botulínicaHistoria toxina botulínica
Historia toxina botulínicasesan90210
 

Destaque (15)

Saúde integral ou Medicina de Corpo, Alma e Espírito
Saúde integral ou Medicina de Corpo, Alma e EspíritoSaúde integral ou Medicina de Corpo, Alma e Espírito
Saúde integral ou Medicina de Corpo, Alma e Espírito
 
iMOR - Plasma Rico em Plaquetas (PRP)
iMOR - Plasma Rico em Plaquetas (PRP)iMOR - Plasma Rico em Plaquetas (PRP)
iMOR - Plasma Rico em Plaquetas (PRP)
 
Tsarong fundamentos medicina_tibetana
Tsarong fundamentos medicina_tibetanaTsarong fundamentos medicina_tibetana
Tsarong fundamentos medicina_tibetana
 
Mesoterapia
MesoterapiaMesoterapia
Mesoterapia
 
Serviços
ServiçosServiços
Serviços
 
PRP - Plasma rico em plaquetas
PRP - Plasma rico em plaquetasPRP - Plasma rico em plaquetas
PRP - Plasma rico em plaquetas
 
Curso de mesoterapia e hidrolipoclasia
Curso de mesoterapia e hidrolipoclasiaCurso de mesoterapia e hidrolipoclasia
Curso de mesoterapia e hidrolipoclasia
 
Mesoterapia
MesoterapiaMesoterapia
Mesoterapia
 
Mesoterapia
MesoterapiaMesoterapia
Mesoterapia
 
Toxina botulínica 2015
Toxina botulínica 2015Toxina botulínica 2015
Toxina botulínica 2015
 
Mesoterapia Charla
Mesoterapia   CharlaMesoterapia   Charla
Mesoterapia Charla
 
Cafeteria work coffee
Cafeteria work coffeeCafeteria work coffee
Cafeteria work coffee
 
Botox Tratamiento facial
Botox Tratamiento facialBotox Tratamiento facial
Botox Tratamiento facial
 
Botox
Botox Botox
Botox
 
Historia toxina botulínica
Historia toxina botulínicaHistoria toxina botulínica
Historia toxina botulínica
 

Semelhante a Palestra PHPSP+Locaweb 2014 - PDO

Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e SphinxElton Minetto
 
ORM - TDC Porto Alegre 2014 Trilha .NET
ORM - TDC Porto Alegre 2014 Trilha .NETORM - TDC Porto Alegre 2014 Trilha .NET
ORM - TDC Porto Alegre 2014 Trilha .NETJorge Maia
 
PDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTOPDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTOPerla Coutinho Barbosa
 
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdoJorge Luís Gregório
 
PHP e MySQL para iniciantes
PHP e MySQL para iniciantesPHP e MySQL para iniciantes
PHP e MySQL para iniciantesEduardo Mendes
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php segurosDouglas V. Pasqua
 
Desenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkDesenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkMarcelo Rodrigo
 
PHP robusto com Zend Framework
PHP robusto com Zend FrameworkPHP robusto com Zend Framework
PHP robusto com Zend FrameworkJaime Neto
 
PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosDaniel Brandão
 
5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHPAugusto das Neves
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
 

Semelhante a Palestra PHPSP+Locaweb 2014 - PDO (20)

Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e Sphinx
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
 
ORM - TDC Porto Alegre 2014 Trilha .NET
ORM - TDC Porto Alegre 2014 Trilha .NETORM - TDC Porto Alegre 2014 Trilha .NET
ORM - TDC Porto Alegre 2014 Trilha .NET
 
PDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTOPDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTO
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
 
Prog web 05-php-mysql
Prog web 05-php-mysqlProg web 05-php-mysql
Prog web 05-php-mysql
 
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
 
PHP e MySQL para iniciantes
PHP e MySQL para iniciantesPHP e MySQL para iniciantes
PHP e MySQL para iniciantes
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php seguros
 
PHP e Redis
PHP e RedisPHP e Redis
PHP e Redis
 
Desenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkDesenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana framework
 
Palestra de PDO
Palestra de PDOPalestra de PDO
Palestra de PDO
 
PHP robusto com Zend Framework
PHP robusto com Zend FrameworkPHP robusto com Zend Framework
PHP robusto com Zend Framework
 
PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de Dados
 
Prog web 07-pdo
Prog web 07-pdoProg web 07-pdo
Prog web 07-pdo
 
Mongo + php
Mongo + phpMongo + php
Mongo + php
 
Php 07 Cakephp
Php 07 CakephpPhp 07 Cakephp
Php 07 Cakephp
 
Aula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQLAula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQL
 
5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 

Mais de Rodrigo Wanderley de Melo Cardoso

Palestrar.dev - Disseminando seu conhecimento em desenvolvimento
Palestrar.dev - Disseminando seu conhecimento em desenvolvimentoPalestrar.dev - Disseminando seu conhecimento em desenvolvimento
Palestrar.dev - Disseminando seu conhecimento em desenvolvimentoRodrigo Wanderley de Melo Cardoso
 
O ecossistema e o estado atual do php - o presente, o passado e o futuro da ...
O ecossistema e o estado atual do php  - o presente, o passado e o futuro da ...O ecossistema e o estado atual do php  - o presente, o passado e o futuro da ...
O ecossistema e o estado atual do php - o presente, o passado e o futuro da ...Rodrigo Wanderley de Melo Cardoso
 
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...Rodrigo Wanderley de Melo Cardoso
 
Ecossistema php: O presente, o passado e o futuro da linguagem (back-end) mai...
Ecossistema php: O presente, o passado e o futuro da linguagem (back-end) mai...Ecossistema php: O presente, o passado e o futuro da linguagem (back-end) mai...
Ecossistema php: O presente, o passado e o futuro da linguagem (back-end) mai...Rodrigo Wanderley de Melo Cardoso
 
Linguagens de Programação para Ficar de Olho em 2019 - DevRocks
Linguagens de Programação para Ficar de Olho em 2019 - DevRocksLinguagens de Programação para Ficar de Olho em 2019 - DevRocks
Linguagens de Programação para Ficar de Olho em 2019 - DevRocksRodrigo Wanderley de Melo Cardoso
 
Resolvendo problemas de inteligência artificial e reconhecimento óptico com php
Resolvendo problemas de inteligência artificial e reconhecimento óptico com phpResolvendo problemas de inteligência artificial e reconhecimento óptico com php
Resolvendo problemas de inteligência artificial e reconhecimento óptico com phpRodrigo Wanderley de Melo Cardoso
 
Como contribuir para a comunidade de desenvolvedores pode ser bom para minha ...
Como contribuir para a comunidade de desenvolvedores pode ser bom para minha ...Como contribuir para a comunidade de desenvolvedores pode ser bom para minha ...
Como contribuir para a comunidade de desenvolvedores pode ser bom para minha ...Rodrigo Wanderley de Melo Cardoso
 
DrupalCamp campinas 2016 - Como contribuir para a comunidade poder ser bom pa...
DrupalCamp campinas 2016 - Como contribuir para a comunidade poder ser bom pa...DrupalCamp campinas 2016 - Como contribuir para a comunidade poder ser bom pa...
DrupalCamp campinas 2016 - Como contribuir para a comunidade poder ser bom pa...Rodrigo Wanderley de Melo Cardoso
 

Mais de Rodrigo Wanderley de Melo Cardoso (20)

Desenvolvendo chatbots para suas lives
Desenvolvendo chatbots para suas livesDesenvolvendo chatbots para suas lives
Desenvolvendo chatbots para suas lives
 
Palestrar.dev - Disseminando seu conhecimento em desenvolvimento
Palestrar.dev - Disseminando seu conhecimento em desenvolvimentoPalestrar.dev - Disseminando seu conhecimento em desenvolvimento
Palestrar.dev - Disseminando seu conhecimento em desenvolvimento
 
Masterizando a Curadoria de Eventos.pdf
Masterizando a Curadoria de Eventos.pdfMasterizando a Curadoria de Eventos.pdf
Masterizando a Curadoria de Eventos.pdf
 
Onde posso ir como “dev”
Onde posso ir como “dev”Onde posso ir como “dev”
Onde posso ir como “dev”
 
Ferramentas (Devs ou Não) para te ajudar 2021
Ferramentas (Devs ou Não) para te ajudar 2021Ferramentas (Devs ou Não) para te ajudar 2021
Ferramentas (Devs ou Não) para te ajudar 2021
 
Como fazer dinheiro com ti
Como fazer dinheiro com tiComo fazer dinheiro com ti
Como fazer dinheiro com ti
 
O ecossistema e o estado atual do php - o presente, o passado e o futuro da ...
O ecossistema e o estado atual do php  - o presente, o passado e o futuro da ...O ecossistema e o estado atual do php  - o presente, o passado e o futuro da ...
O ecossistema e o estado atual do php - o presente, o passado e o futuro da ...
 
Em busca do elixir do desenvolvimento
Em busca do elixir do desenvolvimentoEm busca do elixir do desenvolvimento
Em busca do elixir do desenvolvimento
 
Desenvolvendo chatbots mesmo sem saber codar!
Desenvolvendo chatbots mesmo sem saber codar! Desenvolvendo chatbots mesmo sem saber codar!
Desenvolvendo chatbots mesmo sem saber codar!
 
Web scrapping com selenium webdriver
Web scrapping com selenium webdriverWeb scrapping com selenium webdriver
Web scrapping com selenium webdriver
 
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...
 
Function as a Service no OpenFaaS com Docker e PHP
Function as a Service no OpenFaaS com Docker e PHPFunction as a Service no OpenFaaS com Docker e PHP
Function as a Service no OpenFaaS com Docker e PHP
 
Ecossistema php: O presente, o passado e o futuro da linguagem (back-end) mai...
Ecossistema php: O presente, o passado e o futuro da linguagem (back-end) mai...Ecossistema php: O presente, o passado e o futuro da linguagem (back-end) mai...
Ecossistema php: O presente, o passado e o futuro da linguagem (back-end) mai...
 
Linguagens de Programação para Ficar de Olho em 2019 - DevRocks
Linguagens de Programação para Ficar de Olho em 2019 - DevRocksLinguagens de Programação para Ficar de Olho em 2019 - DevRocks
Linguagens de Programação para Ficar de Olho em 2019 - DevRocks
 
Desenvolvendo chatbots mesmo sem saber codar!
Desenvolvendo chatbots mesmo sem saber codar!Desenvolvendo chatbots mesmo sem saber codar!
Desenvolvendo chatbots mesmo sem saber codar!
 
Resolvendo problemas de inteligência artificial e reconhecimento óptico com php
Resolvendo problemas de inteligência artificial e reconhecimento óptico com phpResolvendo problemas de inteligência artificial e reconhecimento óptico com php
Resolvendo problemas de inteligência artificial e reconhecimento óptico com php
 
Criando sua stack de deploy php com git, jenkins e ansible
Criando sua stack de deploy php com git, jenkins e ansibleCriando sua stack de deploy php com git, jenkins e ansible
Criando sua stack de deploy php com git, jenkins e ansible
 
Como contribuir para a comunidade de desenvolvedores pode ser bom para minha ...
Como contribuir para a comunidade de desenvolvedores pode ser bom para minha ...Como contribuir para a comunidade de desenvolvedores pode ser bom para minha ...
Como contribuir para a comunidade de desenvolvedores pode ser bom para minha ...
 
DrupalCamp campinas 2016 - Como contribuir para a comunidade poder ser bom pa...
DrupalCamp campinas 2016 - Como contribuir para a comunidade poder ser bom pa...DrupalCamp campinas 2016 - Como contribuir para a comunidade poder ser bom pa...
DrupalCamp campinas 2016 - Como contribuir para a comunidade poder ser bom pa...
 
Php Experience 2016 - Mercado de Trabalho para Elefantes
Php Experience 2016 - Mercado de Trabalho para ElefantesPhp Experience 2016 - Mercado de Trabalho para Elefantes
Php Experience 2016 - Mercado de Trabalho para Elefantes
 

Palestra PHPSP+Locaweb 2014 - PDO

  • 1. O que você precisa saber sobre PDO ?
  • 2. Rodrigo “pokemaobr” Cardoso ✓ Bacharel em Matemática Aplicada e Computacional pela ✓ Programou em ✓ Joga ✓ Evangelista @pokemaobr Quem sou eu?
  • 3. Um amigo de um amigo meu disse que a extensão do mysql está obsoleta. (deprecated)
  • 4. O cliente de última hora decidiu mudar o banco de dados do projeto para SQL Server.
  • 6. Nós temos a solução
  • 7. P D O H P ATA B J E C T S
  • 9. É orientado a objetos
  • 10. Mesmos comandos em SQL para bancos diversos
  • 12. E funciona para quais bancos?
  • 13.
  • 14. E o que eu preciso?
  • 16. PHP 5.1+ SO ou DLL do PDO (PHP < 5.3)
  • 17. PHP 5.1+ SO ou DLL do PDO (PHP < 5.3) SO ou DLL do PDO do banco
  • 19. extension=php_pdo.so (PHP < 5.3) extension=php_pdo_firebird.so extension=php_pdo_informix.so extension=php_pdo_mssql.so extension=php_pdo_mysql.so extension=php_pdo_oci.so extension=php_pdo_oci8.so extension=php_pdo_odbc.so extension=php_pdo_pgsql.so extension=php_pdo_sqlite.so extension=php_pdo.dll (PHP < 5.3) extension=php_pdo_firebird.dll extension=php_pdo_informix.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
  • 21. Só ative o que for usar :)
  • 22. Conectar em forma de mySQL! $connMysql = new PDO('mysql:host=localhost;dbname=phpsplocaweb', 'usuario', 'senha');
  • 23. Conectar em forma de Firebird! $connFirebird= new PDO('firebird:dbname=C:/db/phpsplocaweb.gdb;host=localhost, 'usuario', 'senha');
  • 24. Conectar em forma de SQLite! $connSqlite = new PDO('sqlite:phpsplocaweb.db');
  • 25. E o SQL único?
  • 27. INSERT com parâmetros conhecidos...
  • 28. <?php $connMysql = new PDO('mysql:host=localhost;dbname=phpsplocaweb', 'usuario', 'senha'); $novoCliente = array('nome'=>'Roberto','idade'=>'27','loja'=>'Centro'); $connMysql->prepare('INSERT INTO clientes (nome,idade,loja) VALUES (:nome,: idade,:loja)')->execute($novoCliente);
  • 29. INSERT com parâmetros desconhecidos...
  • 30. <?php $connMysql = new PDO('mysql:host=localhost;dbname=phpsplocaweb', 'usuario', 'senha'); $novoCliente = array('nome'=>'Roberto','idade'=>'27','loja'=>'Centro'); $insert = $connMysql->prepare('INSERT INTO clientes (nome,idade,loja) VALUES (?, ?, ?)') $insert->bindParam(1,$novoCliente['nome']); $insert->bindParam(2,$novoCliente['idade']); $insert->bindParam(3,$novoCliente['loja']); $insert->execute();
  • 31. Realizando um SELECT com o método “query” retornando um array
  • 32. <?php $connMysql = new PDO('mysql:host=localhost;dbname=phpsplocaweb', 'usuario', 'senha'); $sql = 'SELECT nome, idade, loja FROM clientes ORDER BY nome'; $query = $connMysql->query($sql); foreach ($query as $row) { print $row['nome'] . "<br />"; print $row['idade'] . "<br />"; print $row['loja'] . "<br />"; }
  • 33. Seu Retorno Amanda 16 Caxias Josué 20 Sumaré Roberto 15 Centro
  • 34. Realizando um SELECT com o método “query” retornando um objeto
  • 35. <?php $connMysql = new PDO('mysql:host=localhost;dbname=phpsplocaweb', 'usuario', 'senha'); $sql = 'SELECT nome, idade, loja FROM clientes ORDER BY nome'; $query = $connMysql->query($sql); while ($row = $query->fetch(PDO::FETCH_OBJ)) { print $row->nome . "<br />"; print $row->idade . "<br />"; print $row->loja . "<br />"; }
  • 36. Seu Retorno Amanda 16 Caxias Josué 20 Sumaré Roberto 15 Centro
  • 37. UPDATE utilizando o método “query”
  • 38. <?php $idade = '20'; $nome = 'Angela'; $connMysql = new PDO('mysql:host=localhost;dbname=phpsplocaweb', 'usuario', 'senha'); $query = 'UPDATE clientes SET idade = :idade WHERE nome = :nome'; $update = $connMysql->prepare($query)->execute(array( ':idade' => $idade, ':nome' => $nome ));
  • 39. DELETE utilizando os métodos “prepare” e “execute”
  • 40. <?php $nome = 'Roberta'; $connMysql = new PDO('mysql:host=localhost;dbname=phpsplocaweb', 'usuario', 'senha'); $query = 'DELETE FROM clientes WHERE nome = :nome'; $delete = $connMysql->prepare($query); $delete->blindParam(':nome', $nome); $delete->execute();
  • 41. E tem muito mais...