Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

SQL_CALC_FOUND_ROWS / FOUND_ROWS() não funciona em PHP


Obrigada.

Quando eu executei algo análogo ao seu exemplo na linha de comando do mysql, funcionou; mas ao executá-lo a partir do php, falhou. A segunda consulta tem que "saber sobre" a primeira, então acho que de alguma forma a persistência/memória ligando as duas consultas estava sendo bagunçada pelo php.

(Acontece que o Wordpress usa esse tipo de consulta para fazer sua paginação - então nosso maior problema foi que a paginação em uma instalação do wordpress de repente parou de funcionar quando mudamos para o php 5.2.6 ... eventualmente rastreou-o para o FOUND_ROWS( )).

Apenas para postar para pessoas que possam se deparar com isso no futuro ... para mim foi a configuração do php "mysql.trace_mode" - esse padrão "on" em 5.2.6 em vez de "off" como anteriormente, e por algum motivo impede que o FOUND_ROWS() funcione.

Como uma "correção", poderíamos colocar isso em todas as páginas php (na verdade, em um "incluir" comum):
ini_set("mysql.trace_mode", "0");

ou adicione isso ao .htaccess:
php_value mysql.trace_mode "0"

Obrigado mais uma vez, jeri