SlideShare uma empresa Scribd logo
1 de 18
CONEXÕES EFICIENTES EM
BANCO DE DADOS COM PHP
IGOR LOPES – GDG SUL FLUMINENSE
QUEM SOU EU?
Igor Lopes
O QUE É O GDG
ERRATA
• Errado: mysql_i
• Correto: mysqli
O QUE É O PDO?
• PDO: PHP Data Objects.
• Interface leve e consistente para acessar bancos de dados em
PHP.
• As funções são as mesmas para cada banco suportado.
• Disponível a partir do PHP 5.1
PDO X MYSQLI
PDO
• Suporta 12 bancos de dados
• API orientada o objetos
• Suporta parâmetros
nomeados
• É mais seguro
MYSQLI
• Suporta 1 banco de dado
• API orientada o objetos e
procedural
• Não suporta parâmetros
nomeados
• É mais vulnerável
CONECTANDO AO BANCO
• $variavel = new PDO(...);
• Realiza a conexão com o banco de dados desejado ao informar
o drive do banco desejado, o nome do banco de dados, nome
de usuário e senha do banco e as opções extras caso deseje.
PREPARANDO A QUERY
• ->prepare();
• Realiza uma validação da query informada. Caso a query não
seja válida, será retornado false. Caso contrário, o objeto
PDOStatement será retornado para que a query seja executada.
RETORNANDO OS DADOS
• ->fetchAll(): retorna todos os registros obtidos
• ->fetch(): retorna apenas o primeiro registro obtido
• Formas de retorno:
• PDO::FETCH_ASSOC, PDO::FETCH_BOTH, PDO::FETCH_BOUND,
PDO::FETCH_CLASS, PDO::FETCH_INTO, PDO::FETCH_LAZY,
PDO::FETCH_NAMED, PDO::FETCH_NUM, PDO::FETCH_OBJ,
PDO::FETCH_PROPS_LATE
FECHANDO O CURSOR
• ->closeCursor();
• Possibilita a execução de uma nova query na mesma conexão
com o banco
• Ex: realizar um cadastro e fazer a sua seleção em seguida
ENCERRANDO A CONEXÃO COM O BANCO
• A conexão permanecerá ativa enquanto o objeto de conexão
estiver em uso. Ao encerrar, o PHP encerra a conexão
automaticamente.
• Se preferir, é possível destruir o objeto atribuindo o valor NULL
a ele
VINCULAÇÃO DE VALOR AO PARÂMETRO
• ->bindValue(...,...,...);
• Os parâmetros na query podem ser nomedos (‘:name’) ou não
(‘?’).
• Na utilização de (‘?’) os parâmetros deverão ser numerados.
• Constantes:
• PDO::PARAM_BOOL, PDO::PARAM_NULL, PDO::PARAM_INT,
PDO::PARAM_STR, PDO::PARAM_LOB, e outras 67 constantes.
RETORNANDO O ID DO ULTIMO REGISTRO
INSERIDO
• ->lastInsertId();
• Função deve vir após o execute();
TRABALHANDO COM INNER JHOIN
• Basta aplicar as técnicas aprendidas até agora.
UTILIZANDO PDO COM AS CLASSES
GDG SUL FLUMINENSE
• Google+: https://plus.google.com/102014886202826171598
• Facebook: https://www.facebook.com/gdgsulfluminense/
IGOR LOPES
• LinkedIn: https://www.linkedin.com/in/igor-lopes/
• Site Boa Refeição: http://www.boarefeicao.com.br/
BIBLIOGRAFIA
• http://php.net/manual/pt_BR/book.pdo.php
• http://php.net/manual/pt_BR/intro.pdo.php
• http://php.net/manual/en/pdo.drivers.php
• http://php.net/manual/pt_BR/class.pdo.php
• http://php.net/manual/pt_BR/pdo.prepare.php
• http://php.net/manual/pt_BR/pdostatement.execute.php
• http://php.net/manual/en/pdostatement.fetch.php
• http://php.net/manual/pt_BR/pdostatement.closecursor.php
• http://php.net/manual/en/pdo.connections.php
• http://php.net/manual/en/pdostatement.bindvalue.php
• http://php.net/manual/en/pdo.constants.php
• http://php.net/manual/en/pdo.lastinsertid.php

Mais conteúdo relacionado

Mais procurados

Curso mongo db com php
Curso mongo db com phpCurso mongo db com php
Curso mongo db com phpSuissa
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisDaniel Brandão
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringDaniel Brandão
 
Protocolos de comunicação HTTP
Protocolos de comunicação HTTPProtocolos de comunicação HTTP
Protocolos de comunicação HTTPTuesla Santos
 
PHP e a (in)segurança de aplicações
PHP e a (in)segurança de aplicaçõesPHP e a (in)segurança de aplicações
PHP e a (in)segurança de aplicaçõesrjsmelo
 
Cacheamento Lado Servidor
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado ServidorMario Guedes
 
Cakephp 3.0 o bolo ainda serve muita gente
Cakephp 3.0 o bolo ainda serve muita genteCakephp 3.0 o bolo ainda serve muita gente
Cakephp 3.0 o bolo ainda serve muita genteWaldemar Neto
 
Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Mario Guedes
 
Web 2.0 e AJAX - Parte 2 / 3
Web 2.0 e AJAX - Parte 2 / 3Web 2.0 e AJAX - Parte 2 / 3
Web 2.0 e AJAX - Parte 2 / 3David Ruiz
 
Breve história do javascript modularizado
Breve história do javascript modularizadoBreve história do javascript modularizado
Breve história do javascript modularizadoFilipe M. Silva
 
MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento Marcos Thomaz
 
BigData - ElasticSearch + PHP
BigData - ElasticSearch + PHPBigData - ElasticSearch + PHP
BigData - ElasticSearch + PHPFelipe Weckx
 

Mais procurados (18)

Curso mongo db com php
Curso mongo db com phpCurso mongo db com php
Curso mongo db com php
 
Node JS - Parte 2
Node JS - Parte 2Node JS - Parte 2
Node JS - Parte 2
 
Aula de Node
Aula de NodeAula de Node
Aula de Node
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas Condicionais
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e Querystring
 
FSSS.py
FSSS.pyFSSS.py
FSSS.py
 
Files’’ c
Files’’ cFiles’’ c
Files’’ c
 
Protocolos de comunicação HTTP
Protocolos de comunicação HTTPProtocolos de comunicação HTTP
Protocolos de comunicação HTTP
 
Prog web 07-pdo
Prog web 07-pdoProg web 07-pdo
Prog web 07-pdo
 
Http 2.0
Http 2.0Http 2.0
Http 2.0
 
PHP e a (in)segurança de aplicações
PHP e a (in)segurança de aplicaçõesPHP e a (in)segurança de aplicações
PHP e a (in)segurança de aplicações
 
Cacheamento Lado Servidor
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado Servidor
 
Cakephp 3.0 o bolo ainda serve muita gente
Cakephp 3.0 o bolo ainda serve muita genteCakephp 3.0 o bolo ainda serve muita gente
Cakephp 3.0 o bolo ainda serve muita gente
 
Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática
 
Web 2.0 e AJAX - Parte 2 / 3
Web 2.0 e AJAX - Parte 2 / 3Web 2.0 e AJAX - Parte 2 / 3
Web 2.0 e AJAX - Parte 2 / 3
 
Breve história do javascript modularizado
Breve história do javascript modularizadoBreve história do javascript modularizado
Breve história do javascript modularizado
 
MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento
 
BigData - ElasticSearch + PHP
BigData - ElasticSearch + PHPBigData - ElasticSearch + PHP
BigData - ElasticSearch + PHP
 

Semelhante a Conexões eficientes em banco de dados com PHP

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
 
REST Web Services com Java
REST Web Services com JavaREST Web Services com Java
REST Web Services com JavaJugVale
 
noSQL com CouchDb e PHP
noSQL com CouchDb e PHPnoSQL com CouchDb e PHP
noSQL com CouchDb e PHPTheoziran Lima
 
Rest web services com Java
Rest web services com JavaRest web services com Java
Rest web services com JavajesuinoPower
 
Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3Thyago Maia
 
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017Gabriel Machado
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPArlindo Santos
 
Diapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfDiapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfJ0071
 
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e VarnishEscalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e VarnishLucas Brasilino
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHPAugusto Pascutti
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
Desenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHPDesenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHPAndréia Santos
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopDiego Sana
 
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyDesenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyantonio sérgio nogueira
 
Primeiros passos com a API do Zabbix
Primeiros passos com a API do ZabbixPrimeiros passos com a API do Zabbix
Primeiros passos com a API do ZabbixJanssen Lima
 
14-programacao-bd-Object Relational Mapper.pdf
14-programacao-bd-Object Relational Mapper.pdf14-programacao-bd-Object Relational Mapper.pdf
14-programacao-bd-Object Relational Mapper.pdfgabriel-colman
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineOtávio Calaça Xavier
 
Servidor de Aplicação Web: CherryPy - Python
Servidor de Aplicação  Web: CherryPy - PythonServidor de Aplicação  Web: CherryPy - Python
Servidor de Aplicação Web: CherryPy - Pythonantonio sérgio nogueira
 
MongoDB - Apresentação
MongoDB - ApresentaçãoMongoDB - Apresentação
MongoDB - ApresentaçãoTerra / Neo
 

Semelhante a Conexões eficientes em banco de dados com PHP (20)

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
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 
REST Web Services com Java
REST Web Services com JavaREST Web Services com Java
REST Web Services com Java
 
noSQL com CouchDb e PHP
noSQL com CouchDb e PHPnoSQL com CouchDb e PHP
noSQL com CouchDb e PHP
 
Rest web services com Java
Rest web services com JavaRest web services com Java
Rest web services com Java
 
Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3
 
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
Diapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfDiapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdf
 
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e VarnishEscalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Desenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHPDesenvolvimento de Software I - USBWEBSERVER - PHP
Desenvolvimento de Software I - USBWEBSERVER - PHP
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
 
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyDesenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
 
Primeiros passos com a API do Zabbix
Primeiros passos com a API do ZabbixPrimeiros passos com a API do Zabbix
Primeiros passos com a API do Zabbix
 
14-programacao-bd-Object Relational Mapper.pdf
14-programacao-bd-Object Relational Mapper.pdf14-programacao-bd-Object Relational Mapper.pdf
14-programacao-bd-Object Relational Mapper.pdf
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP Doctrine
 
Servidor de Aplicação Web: CherryPy - Python
Servidor de Aplicação  Web: CherryPy - PythonServidor de Aplicação  Web: CherryPy - Python
Servidor de Aplicação Web: CherryPy - Python
 
MongoDB - Apresentação
MongoDB - ApresentaçãoMongoDB - Apresentação
MongoDB - Apresentação
 

Conexões eficientes em banco de dados com PHP

  • 1. CONEXÕES EFICIENTES EM BANCO DE DADOS COM PHP IGOR LOPES – GDG SUL FLUMINENSE
  • 3. O QUE É O GDG
  • 5. O QUE É O PDO? • PDO: PHP Data Objects. • Interface leve e consistente para acessar bancos de dados em PHP. • As funções são as mesmas para cada banco suportado. • Disponível a partir do PHP 5.1
  • 6. PDO X MYSQLI PDO • Suporta 12 bancos de dados • API orientada o objetos • Suporta parâmetros nomeados • É mais seguro MYSQLI • Suporta 1 banco de dado • API orientada o objetos e procedural • Não suporta parâmetros nomeados • É mais vulnerável
  • 7. CONECTANDO AO BANCO • $variavel = new PDO(...); • Realiza a conexão com o banco de dados desejado ao informar o drive do banco desejado, o nome do banco de dados, nome de usuário e senha do banco e as opções extras caso deseje.
  • 8. PREPARANDO A QUERY • ->prepare(); • Realiza uma validação da query informada. Caso a query não seja válida, será retornado false. Caso contrário, o objeto PDOStatement será retornado para que a query seja executada.
  • 9. RETORNANDO OS DADOS • ->fetchAll(): retorna todos os registros obtidos • ->fetch(): retorna apenas o primeiro registro obtido • Formas de retorno: • PDO::FETCH_ASSOC, PDO::FETCH_BOTH, PDO::FETCH_BOUND, PDO::FETCH_CLASS, PDO::FETCH_INTO, PDO::FETCH_LAZY, PDO::FETCH_NAMED, PDO::FETCH_NUM, PDO::FETCH_OBJ, PDO::FETCH_PROPS_LATE
  • 10. FECHANDO O CURSOR • ->closeCursor(); • Possibilita a execução de uma nova query na mesma conexão com o banco • Ex: realizar um cadastro e fazer a sua seleção em seguida
  • 11. ENCERRANDO A CONEXÃO COM O BANCO • A conexão permanecerá ativa enquanto o objeto de conexão estiver em uso. Ao encerrar, o PHP encerra a conexão automaticamente. • Se preferir, é possível destruir o objeto atribuindo o valor NULL a ele
  • 12. VINCULAÇÃO DE VALOR AO PARÂMETRO • ->bindValue(...,...,...); • Os parâmetros na query podem ser nomedos (‘:name’) ou não (‘?’). • Na utilização de (‘?’) os parâmetros deverão ser numerados. • Constantes: • PDO::PARAM_BOOL, PDO::PARAM_NULL, PDO::PARAM_INT, PDO::PARAM_STR, PDO::PARAM_LOB, e outras 67 constantes.
  • 13. RETORNANDO O ID DO ULTIMO REGISTRO INSERIDO • ->lastInsertId(); • Função deve vir após o execute();
  • 14. TRABALHANDO COM INNER JHOIN • Basta aplicar as técnicas aprendidas até agora.
  • 15. UTILIZANDO PDO COM AS CLASSES
  • 16. GDG SUL FLUMINENSE • Google+: https://plus.google.com/102014886202826171598 • Facebook: https://www.facebook.com/gdgsulfluminense/
  • 17. IGOR LOPES • LinkedIn: https://www.linkedin.com/in/igor-lopes/ • Site Boa Refeição: http://www.boarefeicao.com.br/
  • 18. BIBLIOGRAFIA • http://php.net/manual/pt_BR/book.pdo.php • http://php.net/manual/pt_BR/intro.pdo.php • http://php.net/manual/en/pdo.drivers.php • http://php.net/manual/pt_BR/class.pdo.php • http://php.net/manual/pt_BR/pdo.prepare.php • http://php.net/manual/pt_BR/pdostatement.execute.php • http://php.net/manual/en/pdostatement.fetch.php • http://php.net/manual/pt_BR/pdostatement.closecursor.php • http://php.net/manual/en/pdo.connections.php • http://php.net/manual/en/pdostatement.bindvalue.php • http://php.net/manual/en/pdo.constants.php • http://php.net/manual/en/pdo.lastinsertid.php