Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Curso de Inglês Online

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Usando SQLs em PHP apartir de um arquivo de funções

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>.


Estatisticas do NBSO: Incidentes -- totais 2004 e 4o trimestre

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:

  • os totais anuais agrupados (2004: janeiro a dezembro);
  • o quarto trimestre de 2004 (2004: outubro a dezembro).

    Nos valores agrupados para o ano de 2004, chamam a atenção os seguintes fatores:

  • aumento significativo no número de fraudes, que agora responde por 7% das notificações, e teve um crescimento de aproximadamente 550% em relação ao ano de 2003.
  • as varreduras (scans) foram distribuídas em diversas portas, crescendo bastante o número de varreduras à porta 22/TCP. Estas varreduras têm sido geralmente casos de tentativas de login via força bruta, utilizando ataques de dicionários.

    Nos valores relativos ao quarto trimestre de 2004 cabe destacar:

  • a primeira posição entre as portas varridas ocupada pela 22/TCP, que veio crescendo ao longo do ano.
  • a concentração de quase metade das notificações de fraudes do ano neste trimestre.
  • também continuou constante a exploração de problemas relacionados com PHP em casos de comprometimentos e desfigurações de páginas.
  • o número de notificações de fraudes teve um grande crescimento em dezembro, sendo que este mês sozinho apresentou um número maior que o de todo o ano de 2003.

    Atenciosamente,

      NBSO -- NIC BR Security Office <nbso at nic.br>
      Brazilian Computer Emergency Response Team
      http://www.nbso.nic.br/
    

Veja a relação completa dos artigos de Eduardo Ferreira de Carvalho

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.99/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1322 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Objective-C Fundamental