Ho problemi con l'utilizzo della classe mysqli in PHP e non sono stato in grado di trovare la risposta da nessuna parte.PHP mysqli riconnessione problema
Nel mio script una classe crea una connessione mysqli che utilizza attraverso le sue funzioni. In seguito, questo script si biforca. La connessione viene utilizzata anche dai bambini, ma sto riscontrando il problema della chiusura della connessione (MYSQL Server Gone Away) nel genitore quando i bambini muoiono.
Prima di passare a mysqli (stava semplicemente usando mysql) ho semplicemente chiamato mysql_ping per assicurare che la connessione db fosse presente prima di eseguire la query nel processo padre. Mysqli ha una funzione di ping simile, ma in realtà non si riconnette se la connessione è sparita. Ho provato a usare mysqli.reconnect = ON con l'impostazione globale senza fortuna (usando php.ini e ini_set).
La funzione php mysql_connect consente di ottenere una connessione già esistente, quindi se usassi mysql anziché mysqli, potrei semplicemente riutilizzare la connessione nel child subito dopo il processo biforcato. MA mysqli non sembra avere tali funzionalità ...
L'unica cosa che ero in grado di fare era chiamare mysqli-> ping() e se questo restituiva false quindi riconnettersi al database nel genitore. Questo è terribilmente inefficiente, e preferirei capire come farlo correttamente con mysqli (e senza bisogno di ricollegamenti manuali) che dovessero tornare a mysql ..
Qualche suggerimento?
Che ha funzionato. Non mi rendevo conto che non si poteva usare ini_set per modificare questa variabile, ed essendo il genio che sono, ho aggiunto la riga a php.ini prima, non sapendo che esisteva già un mysli.reconnect = Off line più in basso file. Ma rimuovendo quello e usando mysqli.reconnect ha funzionato e reso mysqli-> ping() come proprio mysql_ping. Grazie per l'aiuto! –