Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

-rafael-

[Resolvido] qual a diferenca entre mysql_fetch_array e mysql_fetc

Recommended Posts

qual a diferença entre mysql_fetch_array e mysql_fetch_assoc??

 

quando uso um ou outro??

 

sempre para pegar os resultados de uma consulta eu preciso utilizar mysql_fetch_array? ou existe outra forma?

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

o detalhe é que a minha consulta vai retornar apenas 1 linha, pois to fazendo ela pelo ID

 

quais desses comandos seria melhor pra retornar essa linha?

 

mais uma vez, obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por padrão use mysql_fetch_assoc para apenas uma linha

 

$linha = mysql_fetch_assoc($result);

 

echo $linha['id'];

echo $linha['texto'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar o fetch_assoc(), por que é mais rápido.

Ele pega o valor do campo no banco de dados igualmente como fetch_array(). Porém, pelo nome do campo.

Exemplo fetch_assoc() abaixo:

 

$sql = "select codigo, nome, idade from tabela LIMIT 1";
$exe = mysql_query($sql);
$res = mysql_fetch_assoc($exe);

echo $res['codigo'].'<br>';
echo $res['nome'].'<br>';
echo $res['idade'].'<br>';

E pelo fetch_array(), você pode ir tanto pelo nome do campo como pelo seu indice na tabela ou sequência.

 


[code]
$sql = "select codigo, nome, idade from tabela LIMIT 1";
$exe = mysql_query($sql);
$res = mysql_fetch_array($exe);

echo $res['codigo'].'<br>';
echo $res['nome'].'<br>';
echo $res['idade'].'<br>';


echo $res['1'].'<br>';
echo $res['2'].'<br>';
echo $res['3'].'<br>';

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar o fetch_assoc(), por que é mais rápido.

 

Acho que não é mais rápido que mysql_result, já que mysql_fetch_* cria array, o que ocupa memória, além de gastar mais tempo

 

Para ter certeza, tem que ver o fonte do PHP, a fim de verificar como essas funções são implementadas.

 

 

Mas, para recuperar apenas uma linha, ainda prefiro mysql_result(). http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo

 

pela documentação do php é recomendado utilizar mysql_fetch_*

 

retirado da documentação do php sobre o mysql_result()

 

Alternativas de alta performance recomendadas: mysql_fetch_row(), mysql_fetch_array(), mysql_fetch_assoc() e mysql_fetch_object().

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por ser mais legível no código prefiro usar fetch_object

 

//Com fetch_array

echo "txt".$res['campo']."txt";

//Com fetch_object 

echo "txt $res->campo txt"; //Código mais limpo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por ser mais legível no código prefiro usar fetch_object

 

//Com fetch_array

echo "txt".$res['campo']."txt";

//Com fetch_object 

echo "txt $res->campo txt"; //Código mais limpo

 

lamentamos pela performance das suas aplicações =\

bah, td bem.. não sejamos tão extremistas, mas se começar a passar de 50k registros o fetch_obj começa a ficar pra trás

 

//Com fetch_assoc
echo "txt {$res['campo']} txt";

Compartilhar este post


Link para o post
Compartilhar em outros sites

FONTE: http://www.php.net/manual/pt_BR/function.mysql-result.php

 

Quando trabalhando com um grande conjunto de resultado, você deve considerar o uso de uma das funções que retornam toda a linha(especificadas abaixo). Estas funções retornam o conteúdo de multiplas células em uma chamada de função, elas são MUITO mais rapidas do que mysql_result(). Também note que especificar um índice do campo é muito mais rapido do que especificar o nome do campo ou tabela.campo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.