downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

mysql_get_client_info> <mysql_field_type
Last updated: Fri, 13 Nov 2009

view this page in

mysql_free_result

(PHP 4, PHP 5)

mysql_free_resultSonuç belleğini serbest bırakır

Açıklama

bool mysql_free_result ( resource $sonuç )

mysql_free_result() işlevi, sonuç sonuç göstericisine ayrılan belleği serbest bırakır.

mysql_free_result()'ın sadece büyük sonuç kümeleri döndüren sorgularda kullanılan bellek miktarını önemsiyorsanız kullanılması gerekmektedir. Sonuç belleği, betiğin çalışması sona erdiğinde özdevinimli olarak serbest bırakılır.

Değiştirgeler

sonuç

resource türünde sorgu sonucu. Bu sonuç bir mysql_query() çağrısının sonucudur.

Dönen Değerler

Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.

Eğer belirtilen sonuç değiştirgesi resource türünde değilse, E_WARNING seviyesinde bir hata oluşacaktır. mysql_query() işlevinin SELECT, SHOW, EXPLAIN ve DESCRIBE sorguları için resource türünde tek bir sonuç döndürdüğünü bilmenizde yarar var.

Örnekler

Örnek 1 - mysql_free_result() örneği

<?php
$sonuç 
mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!
$sonuç) {
    echo 
'Sorgu çalıştırılamadı: ' mysql_error();
    exit;
}
/* Sonucu kullandıktan sonra onunla işimizin bittiğini varsayıyoruz */
$row mysql_fetch_assoc($sonuç);

/* Şimdi sonucu serbest bırakıyoruz ve betiğimize devam ediyoruz */
mysql_free_result($sonuç);

echo 
$row['id'];
echo 
$row['email'];
?>

Notlar

Bilginize: Geriye uyumluluk adına, kullanımı önerilmese de şu takma adı kullanabilirsiniz: mysql_freeresult()

Ayrıca Bakınız



mysql_get_client_info> <mysql_field_type
Last updated: Fri, 13 Nov 2009
 
add a note add a note User Contributed Notes
mysql_free_result
webmaster at wforums dot net
16-Jun-2008 08:02
I agree with Joachim Kruyswijk (posted on 14-Jun-2005 11:42). I just did the test on my beta version of my new site (who needs to get dynamically news and user login from a database) and i use 1000kb less memory when i do not use mysql_free_result. I guess it is because the data it needs to load are not that large (for news: date, short description and for the user login: username, password). It may only be in the user control panel that it will be more, but since that isn't developed totally yet, i'll have to test :p
admin at ifyouwantblood dot de
18-Mar-2008 08:47
yes this function may increase the memory usage if you use unbuffered querys and if you have not fetched all the data from mysql. in this case the mysql api has a problem: you want to free the result but do not want to close the connection. now mysql will only accept another query if all data has been fetched, so the api now must fetch the rest of the data when calling mysql_free_result().

so only use unbuffered querys if you fetch all the data (and need it).
21-Nov-2006 10:53
If you're seeing warnings like "Warning: Unknown: 6 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0" and want to turn them off, set mysql.trace_mode = Off in your php.ini
Nairebis
26-Feb-2006 02:00
ALWAYS use this function! I just encountered a bug in my code where I forgot to use this function. I also happen to be using mysql_pconnect() for a persistent connection. If you forget to free the result, it can hold the old result set open indefinitely within the HTTP process.

The upshot (in my application) was that I did updates that happened in a different HTTP process, but they mysteriously didn't show up in another HTTP process. After panicking that MySQL had mysterious data corruption and/or synchronization problems, I traced it back to this where an old result set was held open.
mdeininger at jyujin dot de
20-Sep-2005 11:45
yes, i encountered that too. as far as i could tell, that's because the script is stored in memory after being compiled and that's as much more memory as it needs for a call to that function.

if you always get lotsa data in your results, using this function will decrease memory usage tho, unless you use non-buffered queries (which are preferable unless you absolutely *have* to use mysql_seek(), or you need to do another query while the last one hasn't finished reporting back, as they can provide a small speedup)
macronesia at macronesia dot net
02-Jul-2005 07:11
You not need to use this if you are using PHP 4.

The comment below this comment may explain why it's actually costing more memory.
Joachim Kruyswijk
14-Jun-2005 09:42
Using this function may actually increase the amount of memory used. In my case, the script used 208 bytes less memory when *not* using mysql_free_result().
Check for yourself: call memory_get_usage() at the end of the script.

mysql_get_client_info> <mysql_field_type
Last updated: Fri, 13 Nov 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites