Мне тоже было любопытно, потому что для кого-то, незнакомого с PHP и его расширением SQLite3, документация не проясняет, что эти функции на самом деле делают (то есть, что происходит в SQLite, когда вы их вызываете?) :
SQLite3Stmt::close
- закрывает подготовленную выписку
SQLite3Result::finalize
- Закрывает набор результатов
Взгляд (крайне неквалифицированный) на источник (https://github.com/php/php-src/blob/master/ext/sqlite3/sqlite3.c), на момент написания этой статьи:
SQLite3Result::finalize
в PHP_METHOD(sqlite3result, finalize)
, кажется, в конечном итоге вызывает sqlite3_reset для любого связанного подготовленного оператора, а также освобождает некоторые внутренние структуры данных.
SQLite3Stmt::close
, в PHP_METHOD(sqlite3stmt, close)
, похоже, в итоге освобождает внутренние структуры данных для оператора.
Таким образом, насколько я могу судить, похоже, что речь идет об управлении внутренними ресурсами и вызове вызовов к sqlite3_reset
, что в соответствии с документацией SQLite:
"... [сбрасывает] подготовленный объект оператора обратно в исходное состояние, готов
быть переоформленным "
Никаких комментариев относительно того, что происходит, когда ваш скрипт завершается, а вы не вызывали их, поскольку я не пытался разобраться в этом.
Все это говорит о том, что я новичок в этом отделе, и я впервые взломал исходный код PHP, поэтому я был бы признателен эксперту по PHP / SQLite3, чтобы исправить что-то неправильное или ввести в заблуждение.