mysqli_stmt_free_result în PHP

Eliberează memoria rezultatului păstrat cu mysqli_stmt_store_result.

Sintaxă
mysqli_stmt_free_result(mysqli_stmt $statement): void

Ce face mysqli_stmt_free_result

Interogarea pregătită rămâne utilizabilă: o poți executa din nou cu alte valori. Doar rândurile din memorie sunt șterse. Este util într-o buclă care execută aceeași interogare de multe ori.

Parametri

Parametru Descriere
$statement Interogarea pregătită.

Ce returnează

Nimic.

Exemple

Exemplul 1: Eliberare între execuții

<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");

$stmt = mysqli_prepare($conn, "SELECT id FROM produse WHERE stoc >= ?");
foreach ([1, 20, 100] as $minim) {
    mysqli_stmt_bind_param($stmt, "i", $minim);
    mysqli_stmt_execute($stmt);
    mysqli_stmt_store_result($stmt);
    echo "Produse cu stoc >= $minim: " . mysqli_stmt_num_rows($stmt) . "\n";
    mysqli_stmt_free_result($stmt);
}

Rezultat (cu un server MySQL și tabelul produse de mai sus)

Produse cu stoc >= 1: 3
Produse cu stoc >= 20: 1
Produse cu stoc >= 100: 0

Greșeli frecvente

  • Confunzi mysqli_stmt_free_result cu mysqli_stmt_close. După close, interogarea nu mai poate fi folosită.

Comenzi înrudite

  • mysqli_stmt_store_result: Aduce în memorie tot rezultatul unei interogări pregătite, ca să poți afla numărul de rânduri și să sari între ele.
  • mysqli_close: Închide o conexiune MySQL deschisă cu mysqli_connect.
  • mysqli_stmt_reset: Resetează o interogare pregătită: renunță la rândurile necitite și la datele trimise cu send_long_data.