When you query the db the result is saved inside an resource (think it as a structure similiar to an array) so takes space in memory. After you processed the result within your "while fetch array" loop, you assign its values to a "real" array and at this point you are finished with your resource. So to save some memory space its suggested to delete it from memory as you dont need it anymore and free_result object does exactly this..
Originally posted by JulianD It is recommended to use it after every fetch_array we perform? Or just when we see the need to free some space in memory.
It's a good habit to use it everytime array is fetched but actually it's needed when resource size is big. For example if your query returned a single line with int values, it really does not matter if you delete the resource from the memory or not but well, as a coder it does not harm to have the habit either..