Php mysqli_fetch_array

Php mysqli_fetch_array
Neste tutorial, aprenderemos a usar a função mysqli_fetch_array em php. Esta função nos permite recuperar linhas de um banco de dados MySQL e armazená -las como uma matriz PHP. A função permite armazenar os valores como uma matriz associativa, uma matriz numérica ou uma combinação de ambos. Você pode então manipular a matriz como de costume. Vamos mergulhar.

Função Sintaxe

O snippet a seguir mostra a sintaxe processual para a função mysqli_fetch_array:

mysqli_fetch_array (mysqli_result $ resultado, int $ mode = mysqli_both): array | null | false

Os parâmetros da função são como mostrados:

  1. Resultado - Este parâmetro permite especificar o objeto MySQL_RESULT retornado pelo mysqli_query (), mysqli_store_result (), mysqli_stmt_get_get_result () ou mysqli_use_result () funções.
  2. Modo - O parâmetro de modo define o tipo de matriz usado para armazenar os valores resultantes. Os valores aceitos incluem:
    1. Mysqli_assoc - matriz associativa.
    2. Mysqli_num - matriz numérica.
    3. Mysqli_both - uma combinação da matriz associativa e numérica.

A função retornará a matriz com as linhas buscadas. Se não houver linhas buscadas, a função retornará nula ou falsa na falha.

Exemplo de uso

Vamos discutir um exemplo de uso da função mysqli_fetch_array (). Comece criando um banco de dados, tabela e dados de amostra, conforme mostrado na consulta abaixo:

Criar banco de dados SRC;
Use src;
Soltar tabela se existe pilha_mapping;
Crie a tabela Stack_mapping (
ID int Auto_increment Chave primária,
server_name varchar (50) não nulo,
Endereço Varchar (100) não nulo,
instalado_version varchar (50),
ferramenta_id int
);
Inserir em Stack_mapping (Server_name, endereço, instalado_version, ferramenta_id)
Valores ('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 ', nulo);

A tabela resultante é como mostrado:

O exemplo a seguir mostra como usar o php mysqli_fetch_array função para retornar as linhas da tabela acima como uma matriz.

Comece criando um arquivo php:

$ toque buscar.php

Edite o arquivo:

$ vim busca.php

Adicione o código como mostrado:

$ mysqli = mysqli_connect ("localhost: 3306", "root", "", "src");
if (mysqli_connect_errno ())
morre ("não conseguiu se conectar");

$ query = "Selecione Server_name, endereço de Stack_Mapping";
$ resultado = mysqli_query ($ mysqli, $ query);
while ($ row = mysqli_fetch_array ($ resultado, mysqli_assoc))
printf ("%s (%s) \ n", $ row ["server_name"], $ row ["endereço"]);

mysqli_free_result ($ resultado);
?>

Finalmente, execute o script com PHP:

busca de php.php

Isso deve devolver as linhas como uma matriz associativa, também conhecida como dicionário em outras linguagens de programação.

NOTA: Observe que estamos acessando os valores do dicionário usando o nome da linha (chave do dicionário).

Um exemplo de saída é como mostrado:

SQL Server (localhost: 1433)
Elasticsearch (localhost: 9200)
Redis (localhost: 6379)
PostgreSQL (localhost: 5432)
MySQL (localhost: 3306)

Para retornar os valores como uma matriz numérica, podemos usar a consulta:

$ mysqli = mysqli_connect ("localhost: 3306", "root", "", "src");
if (mysqli_connect_errno ())
morre ("não conseguiu se conectar");

$ query = "Selecione Server_name, endereço de Stack_Mapping";
$ resultado = mysqli_query ($ mysqli, $ query);
while ($ row = mysqli_fetch_array ($ resultado, mysqli_num))
printf ("%s (%s) \ n", $ row [0], $ linha [1]);

mysqli_free_result ($ resultado);
?>

Da mesma forma, o código acima deve retornar as linhas como:

SQL Server (localhost: 1433)
Elasticsearch (localhost: 9200)
Redis (localhost: 6379)
PostgreSQL (localhost: 5432)
MySQL (localhost: 3306)

Finalmente, para obter os resultados como matrizes associativas e numéricas.

$ mysqli = mysqli_connect ("localhost: 3306", "root", "", "src");
if (mysqli_connect_errno ())
morre ("não conseguiu se conectar");

$ query = "Selecione Server_name, endereço de Stack_Mapping";
$ resultado = mysqli_query ($ mysqli, $ query);
while ($ row = mysqli_fetch_array ($ resultado, mysqli_both))
printf ("%s (%s) \ n", $ row [0], $ row ["endereço"]);

mysqli_free_result ($ resultado);
?>

Conclusão

Neste artigo, você aprendeu a usar a função mysqli_fetch_array no php para buscar as linhas de um banco de dados como uma matriz.