O PDO (PHP DATA OBJETCS - presente no PHP desde a versão 5.1 Documentação Oficial) é um módulo do PHP, Orientado a Objetos, que permite a conexão com diversos tipos diferentes de Banco de Dados. Com a utilização deste é possível a utilização de mais de um banco de dados na mesma aplicação, por exemplo, podemos utilizar uma conexão com um banco Mysql e uma para um banco Postgre ou Oracle, desde que o servidor possua o driver instalado.
A padronização das funçes é um ponto positivo no uso do PDO, uma vez que é possível a troca de banco de dados (MySQL para Oracle por exemplo), sem a necessidade de mudar toda a aplicação, mudando apenas o driver para conexão. Ele oferece apenas uma interface unificada para utilização em qualquer um desses banco de dados.
Apesar de ter uma performande menor que o mysqli, o PDO funciona com 12 drivers para Banco de dados (4D, MS SQL Server, Firebird/Interbase, MySQL, Oracle, ODBC/DB2, PostgreSQL, SQLite, Informix, IBM, CUBRID), além de possuir parâmetros nomeados e prepared statements.
Podemos também gerar diversas conexões, até mesmo com banco de dados diferentes dentro da mesma aplicação.
Existem muitas bibliotecas que fazem quase o que o PDO faz, porém são interpretadas pelo PHP, já o PDO é escrito em C e compilado, gerando um desempenho maior em relação aos demais.
Abaixo segue um exemplo de conexo utilizando o PDO:
try {
$servidor = "servidor";
$banco = "nomebanco";
$usuario = "nomedousuario";
$senha = "senha";
$pdo = new PDO ("mysql:host=$servidor;dbname=$banco","$usuario","$senha");
} catch (PDOException $e) {
echo "Erro de Conexão " . $e->getMessage() . "\n";
exit;
}
Podemos definir ainda um charset como o utf8 para a codificação dos dados, inserindo a mesma na linha de conexão:
$pdo = new PDO ("mysql:host=$servidor;dbname=$banco;charset=utf8","$usuario","$senha");