Ce face mysqli_stmt_reset
După reset, interogarea rămâne pregătită și cu variabilele legate, dar rândurile rămase necitite și datele trimise cu mysqli_stmt_send_long_data sunt șterse. Conexiunea devine liberă pentru alte comenzi.
Exemplele de pe această pagină folosesc baza de date magazin, cu tabelul produse (coloanele id INT AUTO_INCREMENT, nume VARCHAR(100) NOT NULL, pret INT și stoc INT) și patru rânduri: Laptop (3200 lei, 5 buc.), Mouse (80 lei, 40 buc.), Monitor (900 lei, 0 buc.) și Tastatură (150 lei, 12 buc.). Comenzile SQL sunt explicate în secțiunea MySQL. Rezultatele au fost scrise pentru MySQL 8, pentru că exemplele au nevoie de un server de baze de date.
Parametri
| Parametru | Descriere |
|---|---|
$statement |
Interogarea pregătită. |
Ce returnează
true la succes.
Exemple
Exemplul 1: Doar primul rând, apoi reset
<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");
mysqli_set_charset($conn, "utf8mb4");
$stmt = mysqli_prepare($conn, "SELECT nume FROM produse ORDER BY pret DESC");
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $nume);
mysqli_stmt_fetch($stmt);
echo "Primul: $nume\n";
mysqli_stmt_reset($stmt);
echo mysqli_fetch_column(mysqli_query($conn, "SELECT COUNT(*) FROM produse")) . " produse în total";
Rezultat (cu un server MySQL și tabelul produse de mai sus)
Primul: Laptop
4 produse în total
Greșeli frecvente
- Te aștepți ca reset să șteargă legăturile făcute cu
bind_param. Ele rămân; schimbă doar valorile variabilelor și execută din nou.
Comenzi înrudite
mysqli_stmt_free_result: Eliberează memoria rezultatului păstrat cu mysqli_stmt_store_result.mysqli_stmt_send_long_data: Trimite pe bucăți valoarea unui parametru foarte mare (fișier, text lung) înainte de execuție.mysqli_stmt_fetch: Citește următorul rând al unei interogări pregătite în variabilele legate cu mysqli_stmt_bind_result.