mysql_fetch_array

(PHP 4, PHP 5)

mysql_fetch_arrayObtém uma linha de resultado como um array associativo, numérico, ou ambos

Warning

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

Descrição

mysql_fetch_array(resource $result, int $result_type = MYSQL_BOTH): array

Retorna um array que corresponde à linha obtida e move adiante o ponteiro interno dos dados.

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

result_type

O tipo de array que deve ser obtido. É uma constante e aceita os seguintes valores: MYSQL_ASSOC, MYSQL_NUM e MYSQL_BOTH.

Valor Retornado

Retorna um array que corresponde à linha obtida ou false se não houver mais linhas. O tipo da array retornado depende de como result_type estiver definido. Usando MYSQL_BOTH (padrão), será obtido um array com ambos os índices, numérico e associativo. Usando MYSQL_ASSOC, somente índices associativos serão obtidos (da mesma forma que mysql_fetch_assoc() funciona), e usando MYSQL_NUM, somente os índices numéricos (como mysql_fetch_row() funciona).

Se duas ou mais colunas do resultado tiverem os mesmos nomes de campos, a última coluna terá precedência. Para acessar a(s) outra(s) coluna(s) de mesmo nome, o índice numérico da coluna deve ser usado ou um apelido para a coluna deve ser especificado. Para colunas com apelidos, o conteúdo não poderá ser acessado com o nome original da coluna.

Exemplos

Example #1 Consulta com nomes de campos duplicados usando apelidos

SELECT table1.field AS foo, table2.field AS bar FROM table1, table2

Example #2 mysql_fetch_array() com MYSQL_NUM

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Não foi possível conectar: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    printf("ID: %s  Nome: %s", $row[0], $row[1]);
}

mysql_free_result($result);
?>

Example #3 mysql_fetch_array() com MYSQL_ASSOC

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Não foi possível conectar: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    printf("ID: %s  Nome: %s", $row["id"], $row["name"]);
}

mysql_free_result($result);
?>

Example #4 mysql_fetch_array() com MYSQL_BOTH

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Não foi possível conectar: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
    printf ("ID: %s  Nome: %s", $row[0], $row["name"]);
}

mysql_free_result($result);
?>

Notas

Note: Desempenho

É importante observar que mysql_fetch_array() não é significativamente mais lento do que mysql_fetch_row(), enquanto que a primeira fornece um valor agregado significativo.

Note: Os nomes de campos retornados por esta função diferenciam maiúsculas e minúsculas.

Note: Esta função define campos NULL como o valor null do PHP.

Veja Também