A extensão POD foi adicionada no PHP5. Esta extensão fornece a classe PDO integrada do PHP para acessar o banco de dados. Diferentes bancos de dados usam o mesmo nome de método para resolver o problema de conexões de banco de dados inconsistentes.
O objetivo do PDO é
fornecer uma API leve, clara e conveniente
Unifique recursos comuns a várias bibliotecas RDBMS sem excluir recursos mais avançados.
Fornece um maior grau opcional de abstração/compatibilidade por meio de scripts PHP.
Características do DOP:
Desempenho. A PDO aprendeu desde o início sobre os sucessos e fracassos do dimensionamento dos bancos de dados existentes. Como o código do PDO é totalmente novo, temos a oportunidade de redesenhar o desempenho desde o início para aproveitar as vantagens dos recursos mais recentes do PHP 5.
habilidade. O PDO foi projetado para fornecer funcionalidade comum de banco de dados como base, ao mesmo tempo que fornece acesso fácil aos recursos exclusivos de um RDBMS.
Simples. O PDO foi projetado para facilitar o trabalho com bancos de dados. A API não força sua entrada no código e deixa claro o que cada chamada de função faz.
Extensível em tempo de execução. A extensão PDO é modular, permitindo carregar drivers para o back-end do seu banco de dados em tempo de execução sem precisar recompilar ou reinstalar todo o programa PHP. Por exemplo, a extensão PDO_OCI substituirá a extensão PDO para implementar a API do banco de dados Oracle. Existem também drivers para MySQL, PostgreSQL, ODBC e Firebird, com mais em desenvolvimento. [separador]
Instalar DOP
O que tenho aqui é uma extensão PDO para desenvolvimento no WINDOWS. Se você deseja instalar e configurar no Linux, procure outro lugar.
Requisitos de versão: php5.1 e versões posteriores já estão incluídas no pacote php5.0.x precisa ser baixado de pecl.php.net e colocado em sua biblioteca de extensões, que é a pasta ext da pasta onde o PHP está localizado; . ;O manual diz que versões anteriores a 5.0 não podem executar extensões PDO. Configuração:
Modifique seu arquivo de configuração php.ini para que ele suporte pdo (se você não entende php.ini, descubra primeiro. Você precisa modificar o php.ini exibido ao chamar sua função phpinfo().) Change extension= php_pdo Remova o ponto e vírgula na frente de .dll O ponto e vírgula é o símbolo de comentário do arquivo de configuração php. Esta extensão é necessária. Existem mais
;extensão=php_pdo.dll
;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=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
O banco de dados correspondente a cada extensão é:
Nome do driver Bancos de dados suportados
PDO_DBLIB FreeTDS/Microsoft SQL Server/Sybase
PDO_FIREBIRD Firebird/Interbase 6
PDO_INFORMIX Servidor Dinâmico IBM Informix
PDO_MYSQL MySQL 3.x/4.x
Interface de chamada Oracle PDO_OCI
PDO_ODBC ODBC v3 (IBM DB2, unixODBC e win32 ODBC)
PDO_PGSQL PostgreSQL
PDO_SQLITE SQLite 3 e SQLite 2
Qual banco de dados você deseja usar, basta remover o símbolo de comentário ";" antes da extensão correspondente.
Usando DOP
Presumo aqui que você instalou o mysql. Caso contrário, encontre uma maneira de instalá-lo primeiro. O meu é mysql5.0.22, e outros que usam o MySQL 4.0.26 também podem usá-lo.
Conexão de banco de dados:
Usamos o exemplo a seguir para analisar o banco de dados de conexão PDO,
<?php
$dbms='mysql'; //Tipo de banco de dados oracle usa ODI Para desenvolvedores, usando bancos de dados diferentes, contanto que você altere isso, você não precisa se lembrar de tantas funções.
$host='localhost'; //Nome do host do banco de dados
$dbName='test'; //Banco de dados usado
$user='root'; //Nome de usuário da conexão com o banco de dados
$pass=''; //Senha correspondente
$dsn="$dbms:host=$host;dbname=$dbName";
tentar {
$dbh = new PDO($dsn, $user, $pass); //Inicializar um objeto PDO significa criar o objeto de conexão com o banco de dados $dbh);
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);
}
*/
$dbh = nulo;
} catch (PDOException $e) {
morrer ("Erro!: " . $e->getMessage() . "<br/>");
}
//Por padrão, esta não é uma conexão longa. Se você precisa de uma conexão longa com o banco de dados, você precisa adicionar um parâmetro no final: array(PDO::ATTR_PERSISTENT => true).
$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));
?>
Consulta ao banco de dados:
Já realizamos uma consulta acima e também podemos utilizar a seguinte consulta:
<?php
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER); //Definir atributos
$rs = $db->query("Selecione * FROM foo");
$rs->setFetchMode(PDO::FETCH_ASSOC);
$resultado_arr = $rs->fetchAll();
print_r($resultado_arr);
?>
Como o método setAttribute() é usado acima, os dois parâmetros são colocados para forçar o nome do campo para letras maiúsculas. A seguir estão listados os parâmetros de PDO::setAttribute(): PDO::ATTR_CASE: Força os nomes das colunas a estarem em um formato, conforme detalhado abaixo (segundo parâmetro):
PDO::CASE_LOWER: Força os nomes das colunas a ficarem em letras minúsculas.
PDO::CASE_NATURAL: Os nomes das colunas estão em sua forma original
PDO::CASE_UPPER: Força os nomes das colunas para letras maiúsculas.
PDO::ATTR_ERRMODE: mensagem de erro.
PDO::ERRMODE_SILENT: Não exibe informações de erro, apenas código de erro.
PDO::ERRMODE_WARNING: Exibe erros de aviso.
PDO::ERRMODE_EXCEPTION: Lança uma exceção.
PDO::ATTR_ORACLE_NULLS (válido não só para ORACLE, mas também para outros bancos de dados): ) especifica o valor correspondente em php para o valor NULL retornado pelo banco de dados.
PDO::NULL_NATURAL: inalterado.
PDO::NULL_EMPTY_STRING: String vazia é convertida em NULL.
PDO::NULL_TO_STRING: NULL é convertido em uma string vazia.
PDO::ATTR_STRINGIFY_FETCHES: Converte valores numéricos em strings ao buscar.
PDO::ATTR_STATEMENT_CLASS: Define a classe de instrução fornecida pelo usuário derivada de PDOStatement. Não pode ser usado com instâncias PDO persistentes. Requer array(string classname, array(mixed constructor_args)).
PDO::ATTR_AUTOCOMMIT (disponível em OCI, Firebird e MySQL): Se deve autocommit cada instrução.
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (disponível no MySQL): Use consultas em buffer.
$rs->setFetchMode(PDO::FETCH_ASSOC); no exemplo é PDOStatement::setFetchMode(), uma declaração do tipo de retorno.
Existem os seguintes:
PDO::FETCH_ASSOC -- formato de array associativo
PDO::FETCH_NUM -- Formulário de array de índice numérico
PDO::FETCH_BOTH -- Ambos estão disponíveis em formato de array, que é o padrão
PDO::FETCH_OBJ -- na forma de um objeto, semelhante ao mysql_fetch_object() anterior
Para mais declarações de tipo de retorno (PDOStatement::nome do método), consulte o manual.
inserir, atualizar, excluir dados,
$db->exec("Delete FROM `xxxx_menu` where mid=43")
;
As operações de consulta são principalmente PDO::query(), PDO::exec(), PDO::prepare().
PDO::query() é usado principalmente para operações que retornam resultados registrados, especialmente operações Select.
PDO::exec() é principalmente para operações que não retornam um conjunto de resultados, como Insert, Update, Delete e outras operações. O resultado que ele retorna é o número de colunas afetadas pela operação atual.
PDO::prepare() é principalmente uma operação de pré-processamento. Você precisa usar $rs->execute() para executar a instrução SQL no pré-processamento. Este método pode vincular parâmetros e é bastante poderoso. . Todos Você pode consultar manuais e outras documentações.
As principais operações para obtenção do conjunto de resultados são: PDOStatement::fetchColumn(), PDOStatement::fetch(), PDOStatement::fetchALL().
PDOStatement::fetchColumn() é um campo do primeiro registro especificado no resultado da busca. O padrão é o primeiro campo.
PDOStatement::fetch() é usado para obter um registro.
PDOStatement::fetchAll() é reunir todos os conjuntos de registros em um. Para obter os resultados, você pode definir o tipo do conjunto de resultados necessário por meio de PDOStatement::setFetchMode.
Existem também duas operações adjacentes, uma é PDO::lastInsertId() e PDOStatement::rowCount(). PDO::lastInsertId() retorna a última operação de inserção e o tipo de coluna de chave primária é o último ID de incremento automático.
PDOStatement::rowCount() é usado principalmente para o conjunto de resultados afetado pelas operações Delete, Insert e Update de PDO::query() e PDO::prepare(), e é inválido para o método PDO::exec() e Selecionar operação.