Мне было интересно, нужно ли мне называть $stmt->free_result()
после того, как я сохранил его результат с помощью $stmt->store_result()
? Могу ли я просто назвать $stmt->close()
в конце?
Причина, по которой я спрашиваю об этом, заключается в том, что когда я вызываю $stmt->num_rows
я должен вызвать $stmt->store_result()
как сказано здесь: http://www.php.net/manual/en/ mysqli-stmt.num-rows.php , но они не называют $stmt->free_result()
в своем примере. Однако в $stmt->store_result()
они делают: http://www.php.net/manual/en/mysqli-stmt.store-result.php .
Вы не должны явно освобождать результат, но можете, если хотите. Если вы этого не сделаете, результат будет освобожден, когда дескриптор инструкции выходит из области видимости.
PHP довольно мягкий, освобождая ресурсы. Любые ресурсы, используемые вашим скриптом, такие как соединения SQL, будут освобождены при выходе сценария. Хотя это хорошая практика программирования, если у вас не так много одновременных пользователей, будет очень мало различий в производительности.