$stmt->free_result()
frigör minne relaterat till en resultatuppsättning, medan $stmt->close()
frigör minne relaterat till ett förberett uttalande. Anropar sedan $stmt->close()
kommer att avbryta alla resultat som fortfarande finns kvar.
I huvudsak anropar $stmt->close()
ger samma effekt som att anropa $stmt->free_result()
eftersom det avbryter resultatuppsättningen också. Men anropar $stmt->free_result()
kommer inte att rensa ut minnet som används av den förberedda satsen i vilket fall du måste använda $stmt->close()
.
När det gäller vilken du ska använda gäller - det kan finnas situationer där du tänker använda det förberedda uttalandet du har initierat, men inte längre är i behov av den resultatuppsättning du har för närvarande. I ett sådant fall skulle du vänta med att anropa $stmt->close()
tills du är klar med det förberedda uttalandet och istället ringer $stmt->free_result()
innan du kör en annan sats.