Martinsrj Postado Abril 14, 2009 Denunciar Share Postado Abril 14, 2009 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 0Segue 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"> ID </font></b></td> 25 <td><b><font face="verdana"> 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> <div align="center"><? echo $reg['id']; ?></div></td> <td> <? 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> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DeeKilleer Postado Abril 14, 2009 Denunciar Share Postado Abril 14, 2009 <?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> <div align='center'>$reg[id]</div></td> <td> $reg[mti_chamado]</td> </tr>"; } mysql_free_result($linhas); mysql_close($link); ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Martinsrj Postado Abril 14, 2009 Autor Denunciar Share Postado Abril 14, 2009 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> <div align='center'>$reg[id]</div></td> <td> $reg[mti_chamado]</td> </tr>"; } mysql_free_result($linhas); mysql_close($link); ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DeeKilleer Postado Abril 14, 2009 Denunciar Share Postado Abril 14, 2009 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mario Junior Postado Abril 14, 2009 Denunciar Share Postado Abril 14, 2009 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Abril 14, 2009 Denunciar Share Postado Abril 14, 2009 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Martinsrj Postado Abril 14, 2009 Autor Denunciar Share Postado Abril 14, 2009 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Martinsrj
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:
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
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.