Ce face mysqli_fetch_lengths
Funcția se apelează după un mysqli_fetch_row (sau altă funcție fetch) și dă, pentru fiecare coloană a rândului curent, numărul de octeți al valorii. Literele cu diacritice ocupă 2 octeți în UTF-8.
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 |
|---|---|
$result |
Rezultatul interogării, după un fetch. |
Ce returnează
Un tablou cu lungimile sau false dacă nu a fost citit niciun rând.
Exemple
Exemplul 1: Lungimile valorilor unui rând
<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");
mysqli_set_charset($conn, "utf8mb4");
$rezultat = mysqli_query($conn, "SELECT * FROM produse WHERE id = 4");
var_dump(mysqli_fetch_lengths($rezultat));
mysqli_fetch_row($rezultat);
$coloane = array_column(mysqli_fetch_fields($rezultat), "name");
print_r(array_combine($coloane, mysqli_fetch_lengths($rezultat)));
Rezultat (cu un server MySQL și tabelul produse de mai sus)
bool(false)
Array
(
[id] => 1
[nume] => 10
[pret] => 3
[stoc] => 2
)
Greșeli frecvente
- Apelezi funcția înainte de primul fetch. Nu există încă un rând curent, deci rezultatul este
false.
Comenzi înrudite
mysqli_fetch_assoc / mysqli_fetch_all / mysqli_fetch_array: Citește următorul rând dintr-un rezultat, ca tablou cu numele coloanelor drept chei.mysqli_fetch_field: Returnează informațiile despre următoarea coloană din rezultat: nume, tabel, tip, lungime.