Acesso a banco de dados no PHP
O Tárcio disponibilizou uma classe de acesso a banco de dados que ele criou e isso me despertou a também mostrar como lido com meus dados no dia-a-dia.
Eu defino meu acesso ao banco de dados em um arquivo que mais tarde será incluido em outro, onde precisarei usar funções que acessam o banco de dados. O nome desse arquivo varia muito de programador para programador. Uns chamam database outros db, enfim o nome não é importante.
Minha conexão é a mais simples possível:
mysql_connect(’host’,'login’,'password’);
mysql_select_db(’database’);
O que geralmente faço é tratar a conexão e em caso de falha exibir uma mensagem amigável e mandar uma mensagem via msn ou email para o administrador, se possível, mas prefiro tratar disso em outro post.
A seguir defino uma simples função de select:
function select($sql) {
if (!($resultado = mysql_query($sql))) {
echo ‘Erro ao selecionar : “‘, $sql, ‘” Causa: “‘,mysql_error(), ‘”<br>’;
return false;
} else {
while ($linha = mysql_fetch_array($resultado)) {
$retorno[] = $linha;
}
return empty($retorno)?array():$retorno;
}
}
Essa função tem duas boas vantagens: Já “fetcha” o resource mysql em um array e caso não haja retorno retorna um array vazio. Gosto disso por que geralmente uso a função de select dentro de um foreach e sem a função ele daria um erro caso não conseguisse achar nenhum registro.
A seguir uma função command:
function command($sql) {
if (!($resultado = mysql_query($sql))) {
echo ‘Erro do Banco de Dados: ‘, mysql_error(), ‘<br>’;
return false;
} else {
return true;
}
}
Essa só serve para mandar instruções de insert, update e delete. Gosto dela por que ela sempre retorna true ou false.
Por enquanto essas funções parecem não fazer muito sentido mas esperem os próximos posts e verão como elas fazem a diferença.
Etiquetas: banco de dados, mysql, php
Dezembro 1, 2007 em 6:50 pm
EPA! Enviar uma mensagem via MSN no tratamento de erros?
Aguardo ansiosamente o post sobre como fazer isso!
Dezembro 2, 2007 em 5:50 pm
Ainda vai demorar, primeiro quero passar pela persistência.