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:
$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.
$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:
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
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:
Mas o que é o getMessage()?
getMessage() — Obtém a mensagem da exceção.
Saiba mais clicando aqui.
Nenhum comentário:
Postar um comentário