mysql_fetch_array
obterá uma matriz que pode ter como chaves:- tanto os números quanto os nomes das colunas, se estiver usando
MYSQL_BOTH
- nomes de colunas, usando
MYSQL_ASSOC
-- neste caso, você obterá a mesma coisa que obtém ao usarmysql_fetch_assoc
- somente números (dependendo da ordem das colunas na consulta), se estiver usando
MYSQL_NUM
Obter resultados indexados por nomes de colunas é provavelmente a solução mais útil - mais fácil de usar, pelo menos.
Mas obter resultados indexados pelas posições dos campos na cláusula select é interessante em uma situação:quando você tem várias colunas com o mesmo nome ou alias.
Neste caso, como você não pode ter duas entradas com o mesmo index em uma matriz, você poderá acessar apenas uma dessas colunas usando o nome da coluna como índice.
Para as outras colunas que tiverem o mesmo nome, você terá que usar índices numéricos.
Essa situação é provavelmente o único caso para o qual eu usaria
mysql_fetch_array
-- e prefiro usar aliases na minha consulta, para evitar essa situação -- é mais claro, na minha opinião. mysql_fetch_assoc
obterá uma matriz, com nomes de colunas como chaves e dados como valores. Não há muito a dizer, na verdade.
E
mysql_fetch_object
você obterá objetos em troca. Escolhendo entre
mysql_fetch_assoc
e mysql_fetch_object
provavelmente depende de como você desenvolve seu aplicativo:se estiver usando objetos em todos os lugares, o segundo provavelmente é o mais adequado. Se estiver usando arrays como contêineres de dados, você pode simplesmente usar o primeiro.