PHP: Trabalhando com PDO (PHP Data Objects)
Olá pessoal, voltando com um novo post depois de muito tempo sem blogar. Hoje vou falar sobre PDO (PHP Data Objects), uma extensão presente a partir da versão 5 do PHP que permite desenvolver códigos de acesso a banco de dados portáveis, mudando apenas uma linha de código.
Imagine um sistema cheio de mysql_connect’s, mysql_query’s e de uma hora pra outra você se vê obrigado a mudar o banco de dados pra PostgreSQL, por exemplo. Imagine o trabalho de alterar toda essa parte do seu projeto? O PDO veio para solucionar esse e muitos outros problemas, como o de SQL Injection, já que usa prepared statements (falarei deles mais abaixo). No caso de você ter um sistema inteiro usando PDO e decide mudar de SGBD, basta alterar apenas a linha de conexão com o tipo de banco de dados desejado.
Conexão
Este é um exemplo de conexão. Você pode criar uma classe utilizando o padrão Singleton, instanciando apenas uma conexão PDO para a aplicação inteira. Se você quisesse alterar o SGBD para PostgreSQL, bastava apenas substituir a palavra mysql por pgsql.
Para descobrir quais drivers do PDO você tem disponíveis, execute o código abaixo:
Por padrão, o PDO não exibe erros de consultas escritas incorretamente, por exemplo. Para exibir os erros e facilitar o desenvolvimento da aplicação, basta passar os seguintes parâmetros ao objeto:
Selecionando dados
Agora que você já tem seu objeto PDO instanciado, é só usá-lo para realizar as consultas. Veja um exemplo de select:
Viu como é simples? Você também pode passar parâmetros para a consulta da seguinte forma:
A grande vantagem do PDO é que se você usar prepared statements, não precisará se preocupar com SQL Injection, pois o PDO já faz todo o serviço de filtragem dos dados de entrada para você, de forma muito segura.
A lógica é a mesma para executar outros tipos de consultas. Veja um exemplo de insert:
Para mais detalhes, consulte a documentação oficial.
Espero que tenham gostado do post. Um abraço e até a próxima!