$stmt->free_result()
frigør hukommelse relateret til et resultatsæt, hvorimod $stmt->close()
frigør hukommelse relateret til en forberedt erklæring. Kalder efterfølgende $stmt->close()
annullerer eventuelle resterende resultater.
I det væsentlige kalder du $stmt->close()
vil give den samme effekt som at kalde $stmt->free_result()
da det også annullerer resultatsættet. Men kalder $stmt->free_result()
vil ikke rydde hukommelsen brugt af den forberedte sætning, i hvilket tilfælde du skal bruge $stmt->close()
.
For så vidt angår hvilken man skal bruge, kan der være situationer, hvor du har tænkt dig at bruge den forberedte erklæring, du har initialiseret, men ikke længere har brug for det resultatsæt, du har i øjeblikket. I et sådant tilfælde ville du vente med at kalde $stmt->close()
indtil du er færdig med den forberedte erklæring og ring i stedet $stmt->free_result()
før du udfører en anden erklæring.