24 de nov. de 2012

Curso PDO [Aula 02: Conexão com PDO]

Curso de PDO
Nesta aula iremos aprender a criar uma conexão com o banco de dados utilizando o PDO , lembrando que faremos comparações do modo primitivo e o modo PDO.

Autor: CarlosCX Albert
Site: http://escolacompleta.com
Aula: 02-06

De fato uma conexão primitiva sem a utilização do PDO , ficaria como o exemplo abaixo:
< ?php
$host = "localhost";
$user = "root";
$pass = "";
$bd = "banco_teste";

$conexao = mysql_connect($host,$user,$pass) OR DIE ("Erro ao conectar com o banco de dados: ".mysql_error());

if($conexao){
mysql_select_db($bd) OR DIE ("Erro ao selecionar banco de dados: ".mysql_error());
}else{}
?>

De certa forma o modo primitivo é menos complexo , e mais rápido de ser desenvolvido , contudo existem desvantagens.

Uma delas é a vulnerabilidade;
Outra questão é o famoso código macarrão;
E mais uma é a questão de tempo longo para mudanças de tipos de banco de dados.

Veja agora como criar sua conexão com banco de dados utilizando o PDO, baseando-se no exemplo acima.

< ?php
$host = "localhost";
$user = "root";
$pass = "";
$bd = "banco_teste";
/*O que o PDO pede na conexao?
ex: PDO($dsn,$user,$pass);
mais o que é dsn ?
dsn = tipo_do_banco:host='seu_host';dbname='nome_do_seu_banco';
*/
$dsn = "mysql:host=".$host.";dbname=".$bd;
try{
$conexao = new PDO($dsn,$user,$pass);
$conexao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $conexao;
}catch(PDOException $error){
echo "Erro ao conectar com o banco de dados: ".$error->getMessage();
}
?>


O que o PDO pede de diferente na conexão?

ex: PDO($dsn,$user,$pass);

Como funciona a estrutura do dsn ?

A estrutura do dsn funciona da seguinte forma:

ex: $dsn = “tipo_do_banco:host=seu_host;dbname=nome_do_seu_banco”;
resultado: $dsn = “mysql:host=localhost;dbname=banco_teste”;

Até ai tudo bem… mas o que quer dizer está linha:
$conexao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); setAttribute – Define um atributo na declaração. Para ver a lista de atributos clique aqui.
PDO :: ATTR_ERRMODE – relatório de erros.
PDO::ERRMODE_EXCEPTION - Atributo filho do atributo ATTR_ERRMODE , este representa um erro gerado pelo PDO.

Endentendo os atributos

Quando você define um atributo no PDO , os próprios possuem valores padrões , e filhos únicos.
A sintaxe para a utilização funciona da seguinte forma:

setAttribute(atributo, filho_do_atributo);

Para isso , veja a lista abaixo , que seta os atributos , e seus filhos alheios.

1. PDO::ATTR_CASE – nomes de colunas força para um caso específico.
Filhos do atributo PDO::ATTR_CASE
PDO::CASE_LOWER – Força nomes de coluna para minúsculas.
PDO::CASE_NATURAL – nomes de colunas deixar como retornados pelo driver de banco de dados.
PDO::CASE_UPPER – nomes de colunas força para maiúsculas.

2. PDO :: ATTR_ERRMODE – relatório de erros.
Filhos do atributo PDO :: ATTR_ERRMODE
PDO::ERRMODE_SILENT – Basta definir códigos de erro.
PDO::ERRMODE_WARNING – Levante E_WARNING.
PDO::ERRMODE_EXCEPTION – Throw exceções.

 3. PDO::ATTR_ORACLE_NULLS – (disponível com todos os drivers, e não apenas da Oracle): Conversão de strings nulas e vazias.
Filhos do atributo PDO :: ATTR_ORACLE_NULLS
PDO::NULL_NATURAL – Não conversão.
PDO::NULL_EMPTY_STRING – string vazio é convertido para NULL .
PDO::NULL_TO_STRING – NULL é convertido para uma cadeia vazia.

Existem uitos atributos e seus alheios , para isso saiba mais no site do oficial do php Clique Aqui
}catch(PDOException $error){
O que é o PDOException?
Ele representa um erro gerado pelo PDO. Desta forma estamos atribuindo o erro gerado pelo PDO à variável $error.
Desta forma devemos apenas chamar a mensagem de error utilizando a variável $error
Observem que para mostrar a mensagem de error gerada, eu utilizei:
$error->getMessage();
Mas o que é o getMessage()?
getMessage() — Obtém a mensagem da exceção.

Saiba mais clicando aqui.

Nenhum comentário:

Postar um comentário