Qual é a maneira de verdade e tentou contar o número de linhas retornadas de função mysql_query` PHP `?

StackOverflow https://stackoverflow.com/questions/1191436

  •  19-09-2019
  •  | 
  •  

Pergunta

Eu sei sobre mysql_num_rows ( resource $result ) mas eu li em algum lugar que não é 100% exato. Tenho visto outras alternativas que realmente fica cada linha e executar um balcão, mas isso soa muito ineficientes. Estou interessado em ver o que os outros fazem para obter uma contagem precisa e eficiente.

Foi útil?

Solução

uso mysql_num_rows() quando você fez uma consulta SELECT ou SHOW e mysql_affected_rows() em caso de consultas INSERT, UPDATE, REPLACE or DELETE.
ambos são suficientemente precisas !!

Outras dicas

mysql_num_rows() é preciso, contanto que você não está usando mysql_unbuffered_query().

Se você estiver usando mysql_query(), mysql_num_rows() é preciso.

Se você estiver usando mysql_unbuffered_query(), mysql_num_rows() retornará o resultado errado até que todas as linhas são recuperadas.

Seria útil para saber exatamente o que você está fazendo com a contagem de linhas, mas eu vou assumir que é para a aplicação muito padrão de paginação conjuntos de resultados.

Issue duas consultas. A primeira é uma consulta de contagem com todos os critérios WHERE da segunda. O segundo é usado para recuperar os registros. É isso ou carregamento de 1.000 linhas na memória quando você está indo só para exibir 10 deles.

No entanto, se você precisa de precisão garantia, você terá de envolver as duas consultas em uma transação consistente de leitura. Caso contrário, uma consulta que acontece a correr entre as consultas de contagem e dados poderia invalidar a informação paginação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top