Tengo problemas para usar la clase mysqli en PHP y no he podido encontrar la respuesta en ningún lado.Problema de reconexión de MySQL de PHP
En mi secuencia de comandos, una clase crea una conexión mysqli que utiliza en todas sus funciones. Después, este script se bifurca. La conexión también es utilizada por los niños, pero me estoy enfrentando al problema de la conexión que se cierra (el servidor MYSQL se ha ido) en el padre cuando los niños mueren.
Antes de cambiar a mysqli (solo estaba usando mysql) simplemente llamé a mysql_ping para asegurarme de que la conexión db estaba allí antes de realizar la consulta en el proceso principal. Mysqli tiene una función de ping similar, pero en realidad no se vuelve a conectar si la conexión se ha ido. Intenté utilizar la configuración global mysqli.reconnect = ON sin suerte (usando php.ini e ini_set).
La función php mysql_connect le permite tomar una conexión ya existente, así que si estaba usando mysql en lugar de mysqli, simplemente podría reutilizar la conexión en el niño inmediatamente después del proceso bifurcado. PERO mysqli no parece tener esa funcionalidad ...
Lo único que pude hacer fue llamar a mysqli-> ping() y si eso devuelve falso, vuelva a conectarlo a la base de datos en el principal. Esto es terriblemente ineficiente, y yo preferiría encontrar la manera de hacerlo correctamente con mysqli (y sin necesidad de reconexiones manuales) que tener que cambiar de nuevo a mysql ..
¿Alguna sugerencia?
Eso funcionó. No me di cuenta de que no podías usar ini_set para modificar esta variable, y siendo el genio que soy, agregué la línea a php.ini antes, sin saber que ya había un mysli.reconnect = Off línea más abajo del archivo. Pero eliminar ese y simplemente usar mysqli.reconnect funcionó e hizo que mysqli-> ping() funcionara igual que mysql_ping. ¡Gracias por la ayuda! –