Mysql
 sql >> Baza danych >  >> RDS >> Mysql

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

$stmt->free_result() zwalnia pamięć związaną z zestawem wyników, podczas gdy $stmt->close() zwalnia pamięć związaną z przygotowaną instrukcją. Kolejne wywołanie $stmt->close() anuluje wszystkie pozostałe wyniki.

W skrócie, wywołanie $stmt->close() da taki sam efekt jak wywołanie $stmt->free_result() ponieważ anuluje również zestaw wyników. Ale wywołanie $stmt->free_result() nie wyczyści pamięci używanej przez przygotowaną instrukcję, w takim przypadku należy użyć $stmt->close() .

Jeśli chodzi o to, którego z nich użyć - mogą wystąpić sytuacje, w których zamierzasz użyć przygotowanej instrukcji, którą zainicjowałeś, ale nie potrzebujesz już zestawu wyników, który aktualnie posiadasz. W takim przypadku czekałbyś na wywołanie $stmt->close() dopóki nie skończysz z przygotowaną instrukcją i zamiast tego wywołaj $stmt->free_result() przed wykonaniem kolejnej instrukcji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Migracja MySQL do SQL Server

  2. MySQL – rosyjskie znaki są wyświetlane nieprawidłowo

  3. Usuń pierwsze X wierszy bazy danych

  4. Zoptymalizuj wydajność MySQL/MariaDB za pomocą narzędzia MySQLTunner

  5. zaktualizować tabelę danymi z innej tabeli, jeśli nie jest null?