Mysql
 sql >> Base de données >  >> RDS >> Mysql

SQL_CALC_FOUND_ROWS / FOUND_ROWS() ne fonctionne pas en PHP

Merci.

Lorsque j'exécutais quelque chose d'analogue à votre exemple sur la ligne de commande mysql, cela fonctionnerait; mais en l'exécutant à partir de php, cela a échoué. La deuxième requête doit "connaître" la première, donc je suppose que la persistance/mémoire reliant les deux requêtes était gâchée par le php.

(Il s'avère que Wordpress utilise ce type de requête pour faire sa pagination - donc notre plus gros problème était que la pagination dans une installation de wordpress a soudainement cessé de fonctionner lorsque nous sommes passés à php 5.2.6 ... finalement retrouvé jusqu'à FOUND_ROWS( )).

Juste pour le plaisir de publier pour les personnes qui pourraient rencontrer cela à l'avenir ... pour moi, c'était le paramètre php "mysql.trace_mode" - celui-ci était "on" par défaut dans 5.2.6 au lieu de "off" comme précédemment, et pour une raison quelconque, empêche FOUND_ROWS() de fonctionner.

En tant que "correctif", nous pourrions soit mettre ceci dans chaque page php (en fait, dans un "include") commun :

ini_set("mysql.trace_mode", "0");

ou ajoutez ceci au .htaccess :

php_value mysql.trace_mode "0"

Merci encore, Jerry