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”):
or add this to the .htaccess:
php_value mysql.trace_mode "0"