Mysql
 sql >> Base de données >  >> RDS >> Mysql

$stmt->close() contre $stmt->free_result()

$stmt->free_result() libère de la mémoire liée à un jeu de résultats, alors que $stmt->close() libère de la mémoire liée à une instruction préparée. Appel ultérieur de $stmt->close() annulera tout résultat restant.

Essentiellement, appeler $stmt->close() fournira le même effet que l'appel de $stmt->free_result() puisqu'il annule également le jeu de résultats. Mais appeler $stmt->free_result() n'effacera pas la mémoire utilisée par l'instruction préparée auquel cas vous devez utiliser $stmt->close() .

En ce qui concerne celui à utiliser - il peut y avoir des situations où vous avez l'intention d'utiliser l'instruction préparée que vous avez initialisée, mais n'avez plus besoin du jeu de résultats que vous avez actuellement. Dans un tel cas, vous attendriez d'appeler $stmt->close() jusqu'à ce que vous ayez terminé avec l'instruction préparée et appelez à la place $stmt->free_result() avant d'exécuter une autre instruction.