sql >> Database >  >> RDS >> Mysql

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

$stmt->free_result() maakt geheugen vrij met betrekking tot een resultatenset, terwijl $stmt->close() maakt geheugen vrij met betrekking tot een voorbereide verklaring. Vervolgens aanroepend $stmt->close() zal het resterende resultaat annuleren.

In wezen, aanroepen van $stmt->close() geeft hetzelfde effect als het aanroepen van $stmt->free_result() omdat het ook de resultatenset annuleert. Maar door $stmt->free_result() . te bellen zal het geheugen dat wordt gebruikt door de voorbereide instructie niet wissen. In dat geval moet u $stmt->close() gebruiken .

Wat betreft welke je moet gebruiken - er kunnen situaties zijn waarin je van plan bent om de voorbereide instructie die je hebt geïnitialiseerd te gebruiken, maar niet langer de resultatenset nodig hebt die je momenteel hebt. In zo'n geval wacht je met het aanroepen van $stmt->close() totdat u klaar bent met de voorbereide instructie en in plaats daarvan belt u $stmt->free_result() voordat u een andere instructie uitvoert.



  1. De beste manier om een ​​categorienaam van php op te slaan in een mysql-tabel

  2. classNotFoundException bij laden van JDBC-stuurprogramma

  3. Postgres sql-querysyntaxisfout invoegen van phpPgAdmin

  4. Hoe te filteren in een-op-veel relatie met Android room db