sql >> Databáze >  >> RDS >> Mysql

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

$stmt->free_result() uvolňuje paměť související se sadou výsledků, zatímco $stmt->close() uvolní paměť související s připraveným příkazem. Následně volání $stmt->close() zruší všechny zbývající výsledky.

V podstatě volání $stmt->close() poskytne stejný efekt jako volání $stmt->free_result() protože zruší také sadu výsledků. Ale volání $stmt->free_result() nevyčistí paměť použitou připraveným příkazem, v takovém případě musíte použít $stmt->close() .

Pokud jde o to, který z nich použít, mohou nastat situace, kdy máte v úmyslu použít připravený příkaz, který jste inicializovali, ale již nepotřebujete sadu výsledků, kterou aktuálně máte. V takovém případě byste čekali na volání $stmt->close() dokud nebudete hotovi s připraveným příkazem a místo toho zavoláte $stmt->free_result() před provedením dalšího příkazu.



  1. 911/112:Datový model služby tísňového volání

  2. Řešení pro:U tabulky, která má seskupený index columnstore, nejsou podporovány kurzory

  3. Dynamický pivot v Oracle SQL - Postup

  4. pymssql.OperationalError:Chybová zpráva DB-Lib 20009, závažnost 9