Ir para conteúdo
Fórum Script Brasil
  • 0

[Erro] Use mysql_free_result to free result...


Martinsrj

Pergunta

Olá pessoal, beleza?

Realizei a instalação do PHP Version 5.2.9-1 + MySQL 5.1.33 + IIS (Windows 2003 Server).

Está dando uma mensagem com um código simples de acesso ao banco:

Warning: Unknown: 1 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0

Segue o código da pagina (consulta_bd.php) abaixo:

1  <style type="text/css">
2  @import url("estilos.css");
3  </style>
4  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5  <html xmlns="http://www.w3.org/1999/xhtml">
6  <head>
7  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8  <title>Recuperando Dados em uma Tabela</title>
9  </head>
10  <?php
11  $servidor = 'localhost';
12  $usuario = 'root';
13  $senha = 'elohim';
14  $banco = 'bd_teste';
15
16  $link = mysql_connect($servidor, $usuario, $senha)
17    or die ('Não foi possivel conectar ao BancoI: '.mysql_error());
18
19  $select = mysql_select_db($banco);
20
21  ?>
22  <font face="Verdana" color="#6699FF"><b>Teste - Consulta ao Banco de Dados (MySQL v-5.1.33)</b></font><br />
23  <table border="1" bordercolor="#000000" cellpadding="0" cellspacing="0"><tr>
24     <td><b><font face="Verdana">&nbsp;ID&nbsp;</font></b></td>
25     <td><b><font face="verdana">&nbsp;Nome</font></b></td>
26  </tr>
27  <?
28
29  $result = mysql_query("SELECT * from tab_mti ORDER BY mti_chamado");
30  $linhas = mysql_num_rows($result);
31
for ($i=0; $i<$linhas; $i++)
{
$reg = mysql_fetch_array($result);
?>
   <tr>
      <td>&nbsp;<div align="center"><? echo $reg['id']; ?></div></td>
      <td>&nbsp;<? echo $reg['mti_chamado']; ?></td>
    </tr>

<?
}
mysql_close($link);
?>
</table>
<br />
<br />
<!--
<a href="lista.php" class="link">Clique aqui para visualizar os registros na Tabela!!!.</a><br>
<a href="lista_jumpmenu.php" class="link">Clique aqui para visualizar os Registro na ComboBox!!!</a><br>
<a href="inserir.php" class="link">Clique aqui para visualizar PAGINA DE CADASTRO</a><br><br />
<a href="logout.php" class="link">Logout</a> -->
<body>

</body>
</html>

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
<?php

  $result = "SELECT * from tab_mti ORDER BY mti_chamado";
  $res = = mysql_query($result);
  $linhas = mysql_num_rows($result);
  for ($i=0; $i<$linhas; $i++)
  {
     $reg = mysql_fetch_array($result);
     echo "<tr>
              <td>&nbsp;<div align='center'>$reg[id]</div></td>
              <td>&nbsp; $reg[mti_chamado]</td>
           </tr>";
   }
   mysql_free_result($linhas);
   mysql_close($link);
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Deekilleer!

Tive que inserir esse comando: mysql_free_result($result); antes do mysql_close para resolver a mensagem de erro.

Agora o que eu fico sem entender que antes funcionava normalmente.

<?php

  $result = "SELECT * from tab_mti ORDER BY mti_chamado";
  $res = = mysql_query($result);
  $linhas = mysql_num_rows($result);
  for ($i=0; $i<$linhas; $i++)
  {
     $reg = mysql_fetch_array($result);
     echo "<tr>
              <td>&nbsp;<div align='center'>$reg[id]</div></td>
              <td>&nbsp; $reg[mti_chamado]</td>
           </tr>";
   }
   mysql_free_result($linhas);
   mysql_close($link);
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Funcionou OU não ??

O Php as vezes é chato cara.. não é pra dar esse erro aí. É que precisa sempre tratar os resultados.

O Php quando recebe os resultados do banco, espera que você faça alguma coisa com eles.

Você só emitiu na tela.

Mas eu não vii uma coisa no seu código, passou despercebido.

Você colocou o Mysql_Fetch_Array dentro do FOR, não precisa. Coloca ele antes do FOR Ok.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá.

Eu sempre coloquei a liberação do resultado antes de fechar a conexão. Quando eu colocava depois, meus códigos sofriam esse mesmo erro.

Aprendi a sempre liberar os resultados antes de se fechar a conexão. Pelo que eu sei, os resultados são liberados sozinhos ao fechar a conexão, mesmo que você não use o free_result.

Me corrijam se eu estiver errado.

Link para o comentário
Compartilhar em outros sites

  • 0

Sim, quando o script é encerrado as conexões são fechadas e os dados liberados, nem é preciso usar mysql_close e mysql_free_result (isso só se torna realmente necessário se o contexto em que o script roda for crítico), além do que, nos comentários da função mysql_free_result tem gente que descreve casos em que o uso de memória tem um aumento depois do usa da referida função.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá ESerra, boa noite!

Desculpe a minha ignorancia, mas você mencionou para o colega que não é preciso usar mySQL_free_result. Antigamente realmente não era necessário eu utilizar, porem tive que instalar o php + mysql em um servidor windows 2003 server utilizando o IIS e apartir daí está sendo necessário utilizar a função.

Isso seria devido ao Servidor (Apache, IIS), pois o código é simples de acesso ao banco de dados conforme eu coloquei acima.

desde já agradeço pelos os esclarecimento.

Abraços.

Sim, quando o script é encerrado as conexões são fechadas e os dados liberados, nem é preciso usar mysql_close e mysql_free_result (isso só se torna realmente necessário se o contexto em que o script roda for crítico), além do que, nos comentários da função mysql_free_result tem gente que descreve casos em que o uso de memória tem um aumento depois do usa da referida função.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...