A extensão PHP Data Objects (PDO) define uma interface leve e consistente para o PHP acessar bancos de dados.
O PDO fornece uma camada de abstração de acesso a dados, o que significa que independentemente do banco de dados utilizado, as mesmas funções (métodos) podem ser utilizadas para consultar e obter dados.
PDO é lançado com PHP5.1 e também pode ser usado na extensão PECL do PHP5.0, mas não pode ser executado em versões anteriores do PHP.
Você pode verificar se a extensão PDO está instalada através da função phpinfo() do PHP.
No Unix ou Linux você precisa adicionar a seguinte extensão:
extensão=pdo.so
PDO e todos os principais drivers são fornecidos com PHP como extensões compartilhadas. Para ativá-los, basta editar o arquivo php.ini e adicionar a seguinte extensão:
extensão=php_pdo.dllAlém disso, existem várias extensões de banco de dados correspondentes ao seguinte:
;extensão=php_pdo_firebird.dll;extensão=php_pdo_informix.dll;extensão=php_pdo_mssql.dll;extensão=php_pdo_mysql.dll;extensão n=php_pdo_oci.dll;extensão=php_pdo_oci8.dll;extensão=php_pdo_odbc.dll;extensão=php_pdo_pgsql.dll;extensão=php_pdo_sqlite.dll
Após definir essas configurações, precisamos reiniciar o PHP ou o servidor web.
A seguir, vamos dar uma olhada em exemplos específicos. A seguir está um exemplo de uso do PDO para conectar-se a um banco de dados MySql:
<?php$dbms='mysql'; //Tipo de banco de dados $host='localhost'; //Nome do host do banco de dados $dbName='test'; $pass=''; //Senha correspondente $dsn="$dbms:host=$host;dbname=$dbName"; //Inicializar um objeto PDO echo "Conexão bem-sucedida<br/>"; /*Você também pode realizar uma operação de busca foreach ($dbh->query('SELECT * from FOO') as $row) { print_r($row) ; //Você pode usar echo($GLOBAL); para ver esses valores} */ $dbh = null;} catch (PDOException $e) { die ("Error!: " . $e->getMessage() . "<br/>");}//Por padrão, esta não é uma conexão longa Se você precisar de uma conexão longa com o banco de dados, você precisa adicionar um parâmetro no final: array(PDO::ATTR_PERSISTENT => true) Fica assim: $db = new PDO( $dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));?>
É muito simples. A seguir, vamos dar uma olhada nas instruções específicas do PHP PDO:
Constantes predefinidas
Gerenciamento de conexão de conexão PHP PDO
Transações PHP PDO e commit automático
Instruções preparadas e procedimentos armazenados do PHP PDO
Erros PHP PDO e tratamento de erros
PHP DOP Objetos Grandes (LOBs)
Classe DOP:
PDO::beginTransaction — inicia uma transação
PDO::commit — Confirma uma transação
PDO::__construct — Cria uma instância PDO que representa uma conexão de banco de dados
PDO::errorCode — Obtenha o SQLSTATE associado à última operação do identificador do banco de dados
PDO::errorInfo — Retorna as informações de erro da última operação do banco de dados
PDO::exec — Executa uma instrução SQL e retorna o número de linhas afetadas
PDO::getAttribute — Recupera atributos de uma conexão de banco de dados
PDO::getAvailableDrivers — Retorna uma matriz de drivers disponíveis
PDO::inTransaction — Verifica se está dentro de uma transação
PDO::lastInsertId — Retorna o ID ou valor de sequência da última linha inserida
PDO::prepare — Prepara uma instrução SQL para ser executada e retorna um objeto PDOStatement
PDO::query — Executa instruções SQL e retorna objetos PDOStatement, que podem ser entendidos como conjuntos de resultados
PDO::quote — Adicione aspas a strings em instruções SQL.
PDO::rollBack — reverte uma transação
PDO::setAttribute — define um atributo
Classe de instrução PDOS:
PDOStatement::bindColumn — Vincula uma coluna a uma variável PHP
PDOStatement::bindParam — Vincula um parâmetro ao nome da variável especificada
PDOStatement::bindValue — Vincula um valor a um parâmetro
PDOStatement::closeCursor — Fecha o cursor para que a instrução possa ser executada novamente.
PDOStatement::columnCount — Retorna o número de colunas no conjunto de resultados
PDOStatement::debugDumpParams — Imprime um comando de pré-processamento SQL
PDOStatement::errorCode — Obtenha o SQLSTATE associado à última operação de manipulação de instrução
PDOStatement::errorInfo — Obtenha informações estendidas de erro relacionadas à última operação de manipulação de instrução
PDOStatement::execute — executa uma instrução preparada
PDOStatement::fetch — Obtém a próxima linha do conjunto de resultados
PDOStatement::fetchAll — Retorna um array contendo todas as linhas do conjunto de resultados
PDOStatement::fetchColumn — Retorna uma única coluna da próxima linha no conjunto de resultados.
PDOStatement::fetchObject — Obtém a próxima linha e a retorna como um objeto.
PDOStatement::getAttribute — Recupera um atributo de instrução
PDOStatement::getColumnMeta — Retorna metadados para uma coluna em um conjunto de resultados
PDOStatement::nextRowset — Avança para o próximo conjunto de linhas em um identificador de instrução com vários conjuntos de linhas
PDOStatement::rowCount — Retorna o número de linhas afetadas pela instrução SQL anterior
PDOStatement::setAttribute — Defina um atributo de instrução
PDOStatement::setFetchMode — Defina o modo de busca padrão para instruções.