Bonjour tout le monde
Certains plugins ou scripts peuvent génerer une erreur 2006 car le
temps d'attente du serveur est dépassé. La requete en cours part en
vrille mais aussi toute les requetes qui suivent dans le même
processus PHP.
On peut limiter la casser en faisant un test préalable lors
l'éxécution de la requete via mysql_ping et mysqli_ping.
En gros le patch est (pour 2.1) :
function spip_mysql_query()
....
if (!mysql_ping($connexion['link'])) {
mysql_close($connexion['link']);
unset($GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]);
spip_connect($serveur);
$connexion = &$GLOBALS['connexions'][$serveur ?
strtolower($serveur) : 0];
}
En gros on ferme la connexion en cours et on tente de relancer une
nouvelle avant d'éxecuter une requête.
Avant d'aller plus loin, j'aimerai savoir s'il y a des contres indications ?
De plus je constate un problème avec l'api dans spip 3.0 nous faisons
des mysqli_query() sans passer par spip_mysql_query() ce qui me semble
une erreur d'implémentation.
Km