I denne opplæringen lærer vi hvordan du bruker mysqli_fetch_array -funksjonen i PHP. Denne funksjonen lar oss hente rader fra en MySQL -database og lagre dem som en PHP -matrise. Funksjonen lar deg lagre verdiene som et assosiativt utvalg, en numerisk matrise eller en kombinasjon av begge deler. Du kan deretter manipulere matrisen som vanlig. La oss dykke inn.
Funksjonssyntaks
Følgende utdrag viser prosessuell syntaks for MySQLI_FETCH_ARRAY -funksjonen:
mysqli_fetch_array (mysqli_result $ resultat, int $ modus = mysqli_both): array | null | falsk
Funksjonsparametrene er som vist:
- Resultat - Denne parameteren lar deg spesifisere mysql_result -objektet som er returnert av mysqli_query (), mysqli_store_result (), mysqli_stmt_get_result (), eller mysqli_use_result () funksjoner.
- MODE - MODE -parameteren definerer typen matrise som brukes til å lagre de resulterende verdiene. Aksepterte verdier inkluderer:
- Mysqli_assoc - assosiativ matrise.
- Mysqli_num - numerisk matrise.
- Mysqli_both - en kombinasjon av assosiativ og numerisk matrise.
Funksjonen vil deretter returnere matrisen med de hentede radene. Hvis det ikke er noen hentet rader, returnerer funksjonen null eller usant ved feil.
Eksempelbruk
La oss diskutere et eksempel på bruk av mysqli_fetch_array () -funksjonen. Begynn med å opprette en eksempeldatabase, tabell og data som vist i spørringen nedenfor:
Opprette database SRC;
Bruk SRC;
Slippbord hvis eksisterer stack_mapping;
Lag tabell Stack_Mapping (
id int auto_increment primærnøkkel,
server_name varchar (50) ikke null,
adresse varchar (100) ikke null,
installert_versjon varchar (50),
verktøy_id int
);
Sett inn i stack_mapping (server_navn, adresse, installert_versjon, verktøy_id)
Verdier ('SQL Server', 'LocalHost: 1433', '15.0 ', 1),
('Elasticsearch', 'Localhost: 9200', '8.4 ', 2),
('Redis', 'Localhost: 6379', '6.0 ', 3),
('PostgreSql', 'Localhost: 5432', '14.5 ', 4),
('Mysql', 'localhost: 3306', '8.0 ', null);
Det resulterende tabellen er som vist:
Følgende eksempel viser hvordan du bruker PHP mysqli_fetch_array -funksjonen for å returnere radene fra tabellen over som en matrise.
Begynn med å lage en PHP -fil:
$ berøringsfetch.PHP
Rediger filen:
$ vim henter.PHP
Legg til koden som vist:
$ mysqli = mysqli_connect ("localhost: 3306", "root", "", "src");
if (mysqli_connect_errno ())
dø ("kunne ikke koble til");
$ spørring = "Velg server_navn, adresse fra stack_mapping";
$ resultat = mysqli_query ($ mysqli, $ spørring);
mens ($ rad = mysqli_fetch_array ($ resultat, mysqli_assoc))
printf ("%s (%s) \ n", $ rad ["server_name"], $ rad ["adresse"]);
mysqli_free_result ($ resultat);
?>
Til slutt, kjør skriptet med PHP:
PHP Fetch.PHP
Dette bør returnere radene som et assosiativt utvalg, også kjent som en ordbok i andre programmeringsspråk.
Merk: Merk at vi får tilgang til verdiene til ordboken ved hjelp av radnavnet (ordboksnøkkel).
Et eksempelutgang er som vist:
SQL Server (LocalHost: 1433)
Elasticsearch (localhost: 9200)
Redis (Localhost: 6379)
PostgreSQL (LocalHost: 5432)
Mysql (localhost: 3306)
For å returnere verdiene som en numerisk matrise, kan vi bruke spørringen:
$ mysqli = mysqli_connect ("localhost: 3306", "root", "", "src");
if (mysqli_connect_errno ())
dø ("kunne ikke koble til");
$ spørring = "Velg server_navn, adresse fra stack_mapping";
$ resultat = mysqli_query ($ mysqli, $ spørring);
mens ($ rad = mysqli_fetch_array ($ resultat, mysqli_num))
printf ("%s (%s) \ n", $ rad [0], $ rad [1]);
mysqli_free_result ($ resultat);
?>
Tilsvarende skal koden over returnere radene som:
SQL Server (LocalHost: 1433)
Elasticsearch (localhost: 9200)
Redis (Localhost: 6379)
PostgreSQL (LocalHost: 5432)
Mysql (localhost: 3306)
Til slutt, for å få resultatene som både assosiative og numeriske matriser.
$ mysqli = mysqli_connect ("localhost: 3306", "root", "", "src");
if (mysqli_connect_errno ())
dø ("kunne ikke koble til");
$ spørring = "Velg server_navn, adresse fra stack_mapping";
$ resultat = mysqli_query ($ mysqli, $ spørring);
mens ($ rad = mysqli_fetch_array ($ resultat, mysqli_both))
printf ("%s (%s) \ n", $ rad [0], $ rad ["adresse"]);
mysqli_free_result ($ resultat);
?>
Konklusjon
I denne artikkelen lærte du hvordan du bruker MySqli_Fetch_Array -funksjonen i PHP for å hente radene fra en database som en matrise.