De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Eduardo Ferreira de Carvalho
Data de Publicação: 06 de Fevereiro de 2005
A minha dica será como implementar um arquivo com funções SQL para serem utilizadas em arquivos PHP possibilitando até trabalhar com camadas.
UM recurso interessante é centralizar num único arquivo todas as conexões ao banco de dados, no meu caso MYSQL. Para isso criei um arquivo db_sql.php que possui o seguinte código:
<?php if (function_exists("DbQuery")==false) { function DbQuery($Query,$type) { $DbQueryResult=mysql_query($Query); if ($type==1) { $NumFields=mysql_num_fields($DbQueryResult); for ($c=0;$c<=($NumFields-1);$c++) { $Name[$c]=mysql_field_name($DbQueryResult,$c); } $QueryResultAll=mysql_fetch_array($DbQueryResult); for($d=0;$d<=($NumFields-1);$d++) { $QueryResult[$Name[$d]]=$QueryResultAll[$d]; } } if ($type==2) { $NumRegist=mysql_num_rows($DbQueryResult); $NumFields=mysql_num_fields($DbQueryResult); for ($c=0;$c<=($NumFields-1);$c++) { $Name[$c]=mysql_field_name($DbQueryResult,$c); } for ($c=0;$c<=($NumRegist-1);$c++) { $QueryResultAll[$c]=mysql_fetch_array($DbQueryResult); for($d=0;$d<=($NumFields-1);$d++) { $QueryResult[$c][$Name[$d]]=$QueryResultAll[$c][$d]; } } } return $QueryResult; } } if (function_exists("db_connect")==false) { function db_connect() { include "constantes.php"; $link=mysql_pconnect($host,$user,$pass); if ($link) { mysql_select_db($BD,$link); } }} if (function_exists("db_query")==false) { function db_query($query) { $resultado=mysql_query($query); return TRUE; }} ?>
Neste arquivo existem 3 funções: DbQuery(), db_connect() e db_query().
DbQuery() - função para utilização de SELECT db_connect() - função que conecta ao banco de dados db_query() - função para utilização de INSERT, UPDATE e DELETE
Para todos os arquivos php que utilizarão as funções SQL, coloca-se:
require("db_sql.php"); db_connect();
Depois a chamada para uma das funções:
<?php ..... $sql="UPDATE t1 SET c1='$var1' WHERE c2='$var2'"; $result=db_query($sql); $sql="SELECT nome FROM t1"; $linha=DbQuery($sql,2); $TotalRegistros = $linha[NumRegist]; $c = 0; if ($linha) { while($linha[$c]) { $Atual = $linha[$c]; $nome=$Atual[nome]; $c++; } } $sql="SELECT nome FROM t1 WHERE c1='$var1'"; $linha=DbQuery($sql,1); $nome=$linha[nome]; ..... ?>
Onde em DbQuery(), $sql é a string que será o comando SQL enviado e valor=1 avisa para a função que somente retornará um valor do SELECT e valor=2 valores com mais de um registro.
Onde em db_query(), $sql é a string que será o comando SQL enviado.
Onde em db_connect(), o include constantes.php é o arquivo na qual conterá as variáveis $host, $user, $pass e $BD que são essenciais para a conexão com o BD.
Bom, é isso e espero ter ajudado bastante nesta minha primeira postagem em Dicas-L. Qualquer dúvida sobre o código mande-me um e-mail <edufc (a) fem unicamp br> ou pelo MSN <webcemib (a) hotmail com>.
Estao disponíveis em http://www.nbso.nic.br/stats/incidentes/ as estatísticas dos incidentes reportados ao NBSO (NIC BR Security Office) em 2004, incluindo:
NBSO -- NIC BR Security Office <nbso at nic.br> Brazilian Computer Emergency Response Team http://www.nbso.nic.br/
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários