Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite,
Depois de ajudar a muitos no decorrer deste mês surgi uma dúvida sobre o PDO.
Eu pensava que pdo padronizava os comandos dos bancos, tipo, da mesma forma que eu extrairia um dado do mysql eu o faria com firebird por exemplo, ou seja um sistema multi-bancos, mas não, a sintaxe muda pra cada banco, e ainda assim, cada banco precisa de um drive especifico do PDO pra interagir,
tem a vantagem da segurança.. mas nada que uma boa programação faça, desturindo os objetos, fechando as coisas.. etc..
Gostaria de saber a vantagem do PDO sobre qualquer tipo de sistema ou site não PDO como por exemplo mysql ou postgres.
O PDO não é complexo, ele é basicamente isso: Abstração do acesso ao banco de dados e Segurança contra SQL Injection. Pode parecer pouco mas já ajuda bastante na segurança. Se PDO é amplamente usado então ele já foi muito bem testado.
Isto que você quer, seria uma abstração do SQL.
O PDO faz, como já dito, a abstração do acesso ao banco.
Sugiro que você estude o Doctrine. Ele usa o DQL (Doctrine Query Language) para abstrair o SQL, e ainda possibilita a você estender a linguagem.
@braços
Além disso, a mysql/ext (funções mysql_connect, mysql_query) não são mais mantidas há tempos e estão obsoletas desde o PHP 5.5.
>
Isto que você quer, seria uma abstração do SQL.
O PDO faz, como já dito, a abstração do acesso ao banco.
Sugiro que você estude o Doctrine. Ele usa o DQL (Doctrine Query Language) para abstrair o SQL, e ainda possibilita a você estender a linguagem.
@braços
Muito obrigado por sua resposta, agora estou entendendo melhor o conceito, claro que vou estudar obrigado.
a query muda mas vc não precisa mudar as funções...isso já é uma vantagem :)
Sim uma vantagem e algumas desvantagem abaixo, mas o meu anseio e pelas vantagens do mesmo.
O PDO não é complexo, ele é basicamente isso: Abstração do acesso ao banco de dados e Segurança contra SQL Injection. Pode parecer pouco mas já ajuda bastante na segurança. Se PDO é amplamente usado então ele já foi muito bem testado.
Verdade, eu utilizo o mesmo nos meus projetos, queria saber o conteito como você e outros amigos informarão para assim ter conhecimento melhor da ferramente ou não sei se posso me referir em minha class nativa do PHP :D
Além disso, a mysql/ext (funções mysql_connect, mysql_query) não são mais mantidas há tempos e estão obsoletas desde o PHP 5.5.
Sei que o mysql_connect está obsoleto, venho utilizando o PDO a tempo. Queria o conceito de profissionais que o utilizam melhor que a mim que estuda o PHP a 2 anos sendo auto-didata.
Obrigado,
ainda deixarei aberto esperando mais algumas pessoas tirarem suas dúvida e assim também tirar a minha.
E estou a 2 meses estudando o OO voltado para o PHP.
Comprei um livro que fala sobre Orientação a Objeto e utiliza o PDO para conexão, e para o CRUD.
Então queria saber melhor sobre essa CLASS PDO quais seus drives suportados? se eu utilizar voltado a Orientação a Objeto seria interessante para pequenos projetos ou apenas para grandes projetos?
Na verdade a PDO não é somente uma classe, mas sim uma extensão bem madura do PHP para tratar conexões com banco de dados. Não importa se o projeto é grande, médio ou pequeno, orientado a objetos ou procedural. ela funciona do mesmo jeito e não existe segredo algum...
A documentação do PHP é seu ponto de partida: http://php.net/manual/en/book.pdo.php. Tudo que existe sobre a PDO está lá.
da mesma forma que eu extrairia um dado do mysql eu o faria com firebird por exemplo, ou seja um sistema multi-bancos, mas não, a sintaxe muda pra cada banco.
Na verdade muda só a configuração que o PDO pede para cada banco. O CRUD é o mesmo para qualquer um deles. você pode usar um arquivo conf.php para estabelecer ela e depois mudar de banco sem ter que ficar buscando e alterando queries em diversos e obscuros lugares do sistema. O pdo pode não abstrair a query em si mas abstrai a iteração com o bd.
Na verdade muda só a configuração que o PDO pede para cada banco. O CRUD é o mesmo para qualquer um deles. você pode usar um arquivo conf.php para estabelecer ela e depois mudar de banco sem ter que ficar buscando e alterando queries em diversos e obscuros lugares do sistema. O pdo pode não abstrair a query em si mas abstrai a iteração com o bd.
Muito interessante esse ponto que você citou. eu uso uma classe e o único problema que tive foi a falta de driver para o banco sql server 2005 da microsoft, mas os demais não tive problema como: mysql, postgres.
>
Na verdade a PDO não é somente uma classe, mas sim uma extensão bem madura do PHP para tratar conexões com banco de dados. Não importa se o projeto é grande, médio ou pequeno, orientado a objetos ou procedural. ela funciona do mesmo jeito e não existe segredo algum...
A documentação do PHP é seu ponto de partida: http://php.net/manual/en/book.pdo.php. Tudo que existe sobre a PDO está lá.
Obrigado, não e a toa que e monitor tem uma bagagem grande de conhecimento. Obrigado por compartilhar essa informação comigo e com outros colegas que estão com a mesma dúvida que tenho sobre o conceito do PDO.
Minha dúvida é.
Utilizando PDO ficaria mais rápida minha aplicação: MITO ou VERDADE?
Sobre o sql 2005 da microsoft o PDO tem o driver para ela, se a hospedagem não fornece o driver então o problema é com ela . Sobre a velocidade é muito parecida aqui tem alguns testes mas não devem ser tomados como absolutos, o resumo do teste, comparado com Mysql e Mysqli, é que o PDO é mais rápido com Insert e mais lento com Select.
a query muda mas vc não precisa mudar as funções...isso já é uma vantagem :)