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

Errore di pacchetti fuori ordine quando si chiama MySQL stored proc

Dopo aver trascorso molte ore cercando di isolare parti del mio codice per risolvere questo problema, ho notato che l'errore è scomparso dopo aver impostato il flag ATTR_EMULATE_PREPARES su true.

$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);

Questo dice a PDO di emulare le istruzioni preparate invece che in modo nativo da MySQL. Da quello che ho letto, è generalmente consigliabile disattivare questo flag (è vero per impostazione predefinita) se stai utilizzando la versione più aggiornata di MySQL e PHP. Puoi trovare maggiori informazioni in merito in questo COSÌ articolo .

Credo che questo sia un bug con MySQL (ho avuto il problema fino alla versione 5.6.17). Non ci sono molte discussioni su questo particolare problema, quindi si spera che questo faccia risparmiare a qualcun altro ore di risoluzione dei problemi. Il problema è discusso anche su questa pagina di bug di MySQL , ma la soluzione pubblicata non mi ha aiutato nella mia situazione.