Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

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


$stmt->free_result() libera memória relacionada a um conjunto de resultados, enquanto $stmt->close() libera memória relacionada a uma instrução preparada. Subseqüentemente chamando $stmt->close() cancelará qualquer resultado ainda restante.

Em essência, chamar $stmt->close() fornecerá o mesmo efeito que chamar $stmt->free_result() uma vez que cancela o conjunto de resultados também. Mas chamar $stmt->free_result() não irá limpar a memória usada pela instrução preparada, caso em que você deve usar $stmt->close() .

No que diz respeito a qual usar - pode haver situações em que você pretenda usar a instrução preparada que inicializou, mas não precisa mais do conjunto de resultados que possui atualmente. Nesse caso, você esperaria chamando $stmt->close() até que você termine com a instrução preparada e, em vez disso, chame $stmt->free_result() antes de executar outra instrução.