Ce face mysqli_stmt_attr_set
Cu MYSQLI_STMT_ATTR_CURSOR_TYPE = MYSQLI_CURSOR_TYPE_READ_ONLY, serverul deschide un cursor și trimite rândurile pe măsură ce le ceri, iar conexiunea poate rula alte interogări între timp. Cu MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH = 1, store_result calculează proprietatea max_length a coloanelor.
Atributele se setează după mysqli_prepare și înainte de mysqli_stmt_execute.
Parametri
| Parametru | Descriere |
|---|---|
$statement |
Interogarea pregătită. |
$attribute |
Atributul. |
$value |
Valoarea nouă. |
Ce returnează
true la succes.
Exemple
Exemplul 1: Setare și verificare
<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");
$stmt = mysqli_prepare($conn, "SELECT nume FROM produse");
var_dump(mysqli_stmt_attr_set($stmt, MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH, 1));
var_dump(mysqli_stmt_attr_get($stmt, MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH));
mysqli_stmt_attr_set($stmt, MYSQLI_STMT_ATTR_CURSOR_TYPE, MYSQLI_CURSOR_TYPE_READ_ONLY);
var_dump(mysqli_stmt_attr_get($stmt, MYSQLI_STMT_ATTR_CURSOR_TYPE) === MYSQLI_CURSOR_TYPE_READ_ONLY);
Rezultat (cu un server MySQL și tabelul produse de mai sus)
bool(true)
int(1)
bool(true)
Greșeli frecvente
- Setezi atributul după
mysqli_stmt_execute. Nu mai are efect pentru execuția deja făcută.
Comenzi înrudite
mysqli_stmt_attr_get: Citește valoarea unui atribut al interogării pregătite, de exemplu tipul cursorului.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_fetch_field: Returnează informațiile despre următoarea coloană din rezultat: nume, tabel, tip, lungime.