Mysql
 sql >> Database >  >> RDS >> Mysql

SQL_CALC_FOUND_ROWS / FOUND_ROWS() non funziona in PHP

Grazie.

Quando ho eseguito qualcosa di analogo al tuo esempio sulla riga di comando di mysql, avrebbe funzionato; ma eseguendolo da php, non è riuscito. La seconda query deve "conoscere" la prima, quindi immagino in qualche modo che la persistenza/memoria che collega le due query sia stata incasinata dal php.

(Si scopre che Wordpress utilizza questo tipo di query per eseguire la sua impaginazione, quindi il nostro problema più grande era che l'impaginazione in un'installazione di wordpress ha improvvisamente smesso di funzionare quando siamo passati a php 5.2.6 ... alla fine l'abbiamo rintracciato in FOUND_ROWS( )).

Solo per il gusto di postare per le persone che potrebbero imbattersi in questo in futuro ... per me era l'impostazione php "mysql.trace_mode" - questa era impostata su "on" in 5.2.6 invece di "off" come in precedenza, e per qualche motivo impedisce a FOUND_ROWS() di funzionare.

Come "correzione", potremmo inserirlo in ogni pagina php (in realtà, in un comune "include"):

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

o aggiungilo a .htaccess:

php_value mysql.trace_mode "0"

Grazie ancora, Jerry