SQL_CALC_FOUND_ROWS / FOUND_ROWS() does not work in PHP

Thank you.

When I ran something analogous to your example on the mysql command line, it would work; but running it from php, it failed. The second query has to “know about” the first one, so I figure somehow that persistence/memory linking the two queries was getting messed up by the php.

(It turns out that WordPress uses this type of query to do its pagination – so our larger problem was that the pagination in a wordpress install suddenly stopped working when we moved to php 5.2.6 … eventually tracked it down to the FOUND_ROWS()).

Just for the sake of posting for people who may run into this in the future… for me it was the php setting “mysql.trace_mode” – this defaulted “on” in 5.2.6 instead of “off” like previously, and for some reason prevents the FOUND_ROWS() from working.

As a “fix”, we could either put this in every php page (actually, in a common “include”):

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

or add this to the .htaccess:

php_value mysql.trace_mode "0"

Thanks again,
Jerry

Leave a Comment