(PHP 4, PHP 5)
mysql_fetch_array — Obtém uma linha de resultado como um array associativo, numérico, ou ambos
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:
Retorna um array que corresponde à linha obtida e move adiante o ponteiro interno dos dados.
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
.
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.
Exemplo #1 Consulta com nomes de campos duplicados usando apelidos
SELECT table1.field AS foo, table2.field AS bar FROM table1, table2
Exemplo #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);
?>
Exemplo #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);
?>
Exemplo #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);
?>
Nota: 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.
Nota: Os nomes de campos retornados por esta função diferenciam maiúsculas e minúsculas.
Nota: Esta função define campos NULL como o valor
null
do PHP.