mysql_fetch_array
(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:
Descrição
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
eMYSQL_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
- mysql_fetch_row() - Obtém uma linha como um array numérico
- mysql_fetch_assoc() - Obtém uma linha do resultado como um array associativo
- mysql_data_seek() - Move o ponteiro interno do resultado
- mysql_query() - Envia uma consulta MySQL