Lad os nedbryde forskellene mellem `mysql_fetch_row` og` mysql_fetch_array` i PHP sammen med grundene til, at du kan vælge den ene frem for den anden.
mysql_fetch_row
* returnerer: En indekseret matrix. Hvert element i matrixen repræsenterer en kolonne fra den hentede række. Indekserne starter ved 0.
* struktur:
`` `php
$ række =mysql_fetch_row ($ resultat);
ekko $ række [0]; // få adgang til den første kolonne
ekko $ række [1]; // få adgang til den anden kolonne
`` `
* Nøglepunkter:
* Velegnet, når du kun har brug for adgang til kolonnerne i rækken ved hjælp af numeriske indekser.
* Forenkler kode, hvis du kender rækkefølgen af kolonner i din databasetabel.
* Kan være lidt hurtigere til at hente data, især i stramme sløjfer.
mysql_fetch_array
* returnerer: En associativ matrix, en numerisk indekseret matrix eller begge dele. Du kan kontrollere dette ved hjælp af det valgfrie 'resultat_type' argument.
* struktur:
`` `php
// Associative Array
$ række =mysql_fetch_array ($ resultat, mysql_assoc);
ekko $ række ['column_name']; // Adgang efter kolonneavn
// indekseret array
$ række =mysql_fetch_array ($ resultat, mysql_num);
ekko $ række [0]; // Adgang ved numerisk indeks
// Begge
$ række =mysql_fetch_array ($ resultat, mysql_both);
ekko $ række ['column_name'];
ekko $ række [0];
`` `
* Nøglepunkter:
* Tilbyder fleksibilitet. Vælg den type array, der bedst passer til dine behov.
* Brug af `mysql_both` kan gøre din kode mere læsbar, da du kan få adgang til kolonner ved navn eller indeks.
* Potentielt lidt langsommere end `mysql_fetch_row` på grund af yderligere omkostninger.
Hvornår skal man bruge hver
* `mysql_fetch_row`:
* Når du kender den nøjagtige kolonneordre og kun får adgang til data ved hjælp af numeriske indekser.
* I situationer, hvor ydelsen er kritisk, og du er overbevist om, at du kan administrere datatilgang med numeriske indekser.
* `mysql_fetch_array`:
* Når du har brug for at få adgang til data efter kolonnenavn for klarhed og vedligeholdelighed.
* Når du muligvis skal skifte mellem adgang til data efter navn og indeks.
Vigtige noter:
* Forskrevet: Både `mysql_fetch_row` og` mysql_fetch_array` er en del af den forældede `MySQL` -udvidelse i PHP. Den foretrukne tilgang til interaktion med MySQL er at bruge `MySQLI` -udvidelsen eller BOB (PHP -dataobjekter). Disse giver flere funktioner, sikkerhedsforbedringer og support til forberedte udsagn.
* eksempel ved hjælp af `mysqli`:
`` `php
$ mysqli =new mysqli ("localhost", "brugernavn", "adgangskode", "database");
$ resultat =$ mysqli-> forespørgsel ("Vælg * fra din_table");
mens ($ række =$ resultat-> fetch_assoc ()) {
ekko $ række ['column_name'];
}
$ resultat-> tæt ();
$ mysqli-> tæt ();
`` `
Fortæl mig, hvis du gerne vil have en mere dybdegående forklaring på at bruge `mysqli 'eller BOB-udvidelser!